{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "RNN_practicals_X_colab.ipynb",
      "version": "0.3.2",
      "provenance": [],
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "accelerator": "GPU"
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/mlelarge/dataflowr/blob/master/RNN_practicals_X_colab.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "metadata": {
        "id": "yfsCBLrUrWq-",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# RNN practicals\n",
        "\n",
        "This jupyter notebook allows you to reproduce and explore the results presented in the [lecture on RNN](https://mlelarge.github.io/dataflowr-slides/X/lesson5.html#1)"
      ]
    },
    {
      "metadata": {
        "id": "Q5rLTkQqrWrA",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "from collections import OrderedDict\n",
        "import scipy.special\n",
        "from scipy.special import binom\n",
        "import matplotlib.pyplot as plt\n",
        "import time"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "MAWM5y_nrWrD",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "def running_mean(x, N):\n",
        "    cumsum = np.cumsum(np.insert(x, 0, 0)) \n",
        "    return (cumsum[N:] - cumsum[:-N]) / float(N)\n",
        "\n",
        "def Catalan(k):\n",
        "    return binom(2*k,k)/(k+1)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "lzWUmgXorWrF",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "import torch\n",
        "use_gpu = torch.cuda.is_available()\n",
        "def gpu(tensor, gpu=use_gpu):\n",
        "    if gpu:\n",
        "        return tensor.cuda()\n",
        "    else:\n",
        "        return tensor"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "ub_Zinp9rWrI",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# Generation datasets"
      ]
    },
    {
      "metadata": {
        "id": "EtiBpJPjrWrJ",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "seq_max_len = 20\n",
        "seq_min_len = 4"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "J1PZZAEkrWrL",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "## generating positive examples"
      ]
    },
    {
      "metadata": {
        "id": "cjLg6wv4rWrM",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "# convention: +1 opening parenthesis and -1 closing parenthesis\n",
        "\n",
        "def all_parent(n, a, k=-1):\n",
        "    global res\n",
        "    if k==n-1 and sum(a) == 0:\n",
        "        res.append(a.copy())\n",
        "    elif k==n-1:\n",
        "        pass\n",
        "    else:\n",
        "        k += 1\n",
        "        if sum(a) > 0:\n",
        "            a[k] = 1\n",
        "            all_parent(n,a,k)\n",
        "        \n",
        "            a[k] = -1\n",
        "            all_parent(n,a,k)\n",
        "            a[k] = 0\n",
        "        else:\n",
        "            a[k] = 1\n",
        "            all_parent(n,a,k)\n",
        "            a[k] = 0"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "j1BcdKZjrWrQ",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "## generating negative examples"
      ]
    },
    {
      "metadata": {
        "id": "-7HcZhiGrWrR",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "def all_parent_mistake(n, a, k=-1):\n",
        "    global res\n",
        "    if k==n-1 and sum(a) >= -1 and sum(a) <= 1 and min(np.cumsum(a))<0:\n",
        "        res.append(a.copy())\n",
        "    elif sum(a) > n-k:\n",
        "        pass\n",
        "    elif k==n-1:\n",
        "        pass\n",
        "    else:\n",
        "        k += 1\n",
        "        if sum(a) >= -1 and k != 0:\n",
        "            a[k] = 1\n",
        "            all_parent_mistake(n,a,k)\n",
        "        \n",
        "            a[k] = -1\n",
        "            all_parent_mistake(n,a,k)\n",
        "            a[k] = 0\n",
        "        else:\n",
        "            a[k] = 1\n",
        "            all_parent_mistake(n,a,k)\n",
        "            a[k] = 0"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "c6l9A9-KrWrT",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "# numbering the parentheses\n",
        "# example: seq of len 6\n",
        "# ( ( ( ) ) ) \n",
        "# 0 1 2 6 5 4\n",
        "# we always have ( + ) = seq_len\n",
        "# 'wrong' parentheses are always closing and numbered as:\n",
        "# ) )\n",
        "# 7 8\n",
        "\n",
        "def reading_par(l, n):\n",
        "    res = [0]*len(l)\n",
        "    s = []\n",
        "    n_plus = -1\n",
        "    n_moins = n+1\n",
        "    c = 0\n",
        "    for i in l:\n",
        "        if i == 1:\n",
        "            n_plus += 1\n",
        "            s.append(n_plus)\n",
        "            res[c] = n_plus\n",
        "            c += 1\n",
        "        else:\n",
        "            try:\n",
        "                res[c] = n-s.pop()\n",
        "            except:\n",
        "                res[c] = n_moins\n",
        "                n_moins += 1\n",
        "            c += 1\n",
        "    return res"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "_upJ2s3ZrWrW",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "all_par = OrderedDict()\n",
        "for n in range(seq_min_len,seq_max_len+1,2):\n",
        "    a = [0]*n\n",
        "    res = []\n",
        "    all_parent(n=n,a=a,k=-1)\n",
        "    all_par[n] = [reading_par(k,n) for k in res]"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "ieBs4apprWrZ",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "all_par_mist = OrderedDict()\n",
        "for n in range(seq_min_len,seq_max_len+1,2):\n",
        "    a = [0]*n\n",
        "    res = []\n",
        "    all_parent_mistake(n=n,a=a,k=-1)\n",
        "    all_par_mist[n] = [reading_par(k,n) for k in res]"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "2MFeL_EVrWrd",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 104
        },
        "outputId": "9b58efa0-d075-49e6-cf53-49c8174d2ea7"
      },
      "cell_type": "code",
      "source": [
        "all_par[6]"
      ],
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[[0, 1, 2, 4, 5, 6],\n",
              " [0, 1, 5, 2, 4, 6],\n",
              " [0, 1, 5, 6, 2, 4],\n",
              " [0, 6, 1, 2, 4, 5],\n",
              " [0, 6, 1, 5, 2, 4]]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 10
        }
      ]
    },
    {
      "metadata": {
        "id": "qwUw2is5rWrf",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 104
        },
        "outputId": "8effb51f-ce34-43f6-c5c1-f3e749876480"
      },
      "cell_type": "code",
      "source": [
        "all_par_mist[6]"
      ],
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[[0, 1, 5, 6, 7, 2],\n",
              " [0, 6, 1, 5, 7, 2],\n",
              " [0, 6, 7, 1, 2, 4],\n",
              " [0, 6, 7, 1, 5, 2],\n",
              " [0, 6, 7, 8, 1, 2]]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 11
        }
      ]
    },
    {
      "metadata": {
        "id": "pz5QVIj8rWri",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "## number of negative examples by length"
      ]
    },
    {
      "metadata": {
        "id": "mdlMTFOvrWrj",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "long_mist = {i:len(l) for (i,l) in zip(all_par_mist.keys(),all_par_mist.values())}"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "KOFGg3barWrl",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "65e56e65-29db-46de-de8c-e35601d88ee8"
      },
      "cell_type": "code",
      "source": [
        "long_mist"
      ],
      "execution_count": 13,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "{4: 1, 6: 5, 8: 20, 10: 75, 12: 275, 14: 1001, 16: 3640, 18: 13260, 20: 48450}"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 13
        }
      ]
    },
    {
      "metadata": {
        "id": "tAHWT3mhrWrn",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "## number of positive examples by length"
      ]
    },
    {
      "metadata": {
        "id": "JT5CH7y8rWro",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "Catalan_num = {i:len(l) for (i,l) in zip(all_par.keys(),all_par.values())}"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "bR71MufbrWrs",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "3760de1c-a466-4d00-9bb9-1fd9b0a5d5ee"
      },
      "cell_type": "code",
      "source": [
        "Catalan_num"
      ],
      "execution_count": 15,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "{4: 2, 6: 5, 8: 14, 10: 42, 12: 132, 14: 429, 16: 1430, 18: 4862, 20: 16796}"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 15
        }
      ]
    },
    {
      "metadata": {
        "id": "Let6wWF3rWrv",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "Sanity check, see [Catalan numbers](https://en.wikipedia.org/wiki/Catalan_number)"
      ]
    },
    {
      "metadata": {
        "id": "jLA_LsWnrWrw",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 174
        },
        "outputId": "9d4aceae-377b-4ab4-a293-f41404563adf"
      },
      "cell_type": "code",
      "source": [
        "[(2*i,Catalan(i)) for i  in range(2,int(seq_max_len/2)+1)]"
      ],
      "execution_count": 16,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[(4, 2.0),\n",
              " (6, 5.0),\n",
              " (8, 14.0),\n",
              " (10, 42.0),\n",
              " (12, 132.0),\n",
              " (14, 429.0),\n",
              " (16, 1430.0),\n",
              " (18, 4862.0),\n",
              " (20, 16796.0)]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 16
        }
      ]
    },
    {
      "metadata": {
        "id": "CNk4ynfirWr0",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "96d5a74a-6373-4191-8a1d-8f0caa89a0a8"
      },
      "cell_type": "code",
      "source": [
        "# nombre de suites correctes de longueur entre 4 et 10, alphabet de taille nb_symbol.\n",
        "nb_symbol = 10\n",
        "np.sum([Catalan(i)*int(nb_symbol/2)**i for i in range(2,int(seq_max_len/2)+1)])"
      ],
      "execution_count": 17,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "174113843800.0"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 17
        }
      ]
    },
    {
      "metadata": {
        "id": "N4dqFkpzrWr4",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "import random\n",
        "import torch\n",
        "\n",
        "class SequenceGenerator():\n",
        "    def __init__(self, nb_symbol = 10, seq_min_len = 4, seq_max_len = 10):\n",
        "        self.nb_symbol = nb_symbol\n",
        "        self.seq_min_len = seq_min_len\n",
        "        self.seq_max_len = seq_max_len\n",
        "        self.population = [i for i in range(int(nb_symbol/2))]\n",
        "                \n",
        "    def generate_pattern(self):\n",
        "        len_r = random.randint(self.seq_min_len/2,self.seq_max_len/2)\n",
        "        pattern = random.choices(self.population,k=len_r)\n",
        "        return pattern + pattern[::-1]\n",
        "    \n",
        "    def generate_pattern_parenthesis(self, len_r = None):\n",
        "        if len_r == None:\n",
        "            len_r = int(2*random.randint(self.seq_min_len/2,self.seq_max_len/2))\n",
        "        pattern = np.random.choice(self.population,size=int(len_r/2),replace=True)\n",
        "        ind_r = random.randint(0,Catalan_num[len_r]-1)\n",
        "        res = [pattern[i] if i <= len_r/2 else self.nb_symbol-1-pattern[len_r-i] for i in all_par[len_r][ind_r]]\n",
        "        return res\n",
        "    \n",
        "    def generate_parenthesis_false(self):\n",
        "        len_r = int(2*random.randint(self.seq_min_len/2,self.seq_max_len/2))\n",
        "        pattern = np.random.choice(self.population,size=int(len_r/2),replace=True)\n",
        "        ind_r = random.randint(0,long_mist[len_r]-1)\n",
        "        res = [pattern[i] if i <= len_r/2 \n",
        "               else  self.nb_symbol-1-pattern[len_r-i] if i<= len_r \n",
        "               else self.nb_symbol-1-pattern[i-len_r] for i in all_par_mist[len_r][ind_r]]\n",
        "        return res\n",
        "    \n",
        "    def generate_hard_parenthesis(self, len_r = None):\n",
        "        if len_r == None:\n",
        "            len_r = int(2*random.randint(self.seq_min_len/2,self.seq_max_len/2))\n",
        "        pattern = np.random.choice(self.population,size=int(len_r/2),replace=True)\n",
        "        ind_r = random.randint(0,Catalan_num[len_r]-1)\n",
        "        res = [pattern[i] if i <= len_r/2 else self.nb_symbol-1-pattern[len_r-i] for i in all_par[len_r][ind_r]]\n",
        "        \n",
        "        if len_r == None:\n",
        "            len_r = int(2*random.randint(self.seq_min_len/2,self.seq_max_len/2))\n",
        "        pattern = np.random.choice(self.population,size=int(len_r/2),replace=True)\n",
        "        ind_r = random.randint(0,Catalan_num[len_r]-1)\n",
        "        res2 = [pattern[i] if i <= len_r/2 else self.nb_symbol-1-pattern[len_r-i] for i in all_par[len_r][ind_r]]\n",
        "        return res + res2\n",
        "    \n",
        "    def generate_hard_nonparenthesis(self, len_r = None):\n",
        "        if len_r == None:\n",
        "            len_r = int(2*random.randint(self.seq_min_len/2,self.seq_max_len/2))\n",
        "        pattern = np.random.choice(self.population,size=int(len_r/2),replace=True)\n",
        "        ind_r = random.randint(0,long_mist[len_r]-1)\n",
        "        res = [pattern[i] if i <= len_r/2 \n",
        "               else  self.nb_symbol-1-pattern[len_r-i] if i<= len_r \n",
        "               else self.nb_symbol-1-pattern[i-len_r] for i in all_par_mist[len_r][ind_r]]\n",
        "        \n",
        "        if len_r == None:\n",
        "            len_r = int(2*random.randint(self.seq_min_len/2,self.seq_max_len/2))\n",
        "        pattern = np.random.choice(self.population,size=int(len_r/2),replace=True)\n",
        "        ind_r = random.randint(0,Catalan_num[len_r]-1)\n",
        "        res2 = [pattern[i] if i <= len_r/2 else self.nb_symbol-1-pattern[len_r-i] for i in all_par[len_r][ind_r]]\n",
        "        return  res +[self.nb_symbol-1-pattern[0]]+ res2\n",
        "        \n",
        "    def generate_false(self):\n",
        "        popu = [i for i in range(nb_symbol)]\n",
        "        len = random.randint(self.seq_min_len/2,self.seq_max_len/2)\n",
        "        return random.choices(popu,k=len) + random.choices(popu,k=len)\n",
        "    \n",
        "    def generate_label(self, x):\n",
        "        l = int(len(x)/2)\n",
        "        return 1 if x[:l] == x[:l-1:-1] else 0\n",
        "    \n",
        "    def generate_label_parenthesis(self, x):\n",
        "        s = []\n",
        "        label = 1\n",
        "        lenx = len(x)\n",
        "        for i in x:\n",
        "            if s == [] and i < self.nb_symbol/2:\n",
        "                s.append(i)\n",
        "            elif s == [] and i >= self.nb_symbol/2:\n",
        "                label = 0\n",
        "                break\n",
        "            elif i == self.nb_symbol-1-s[-1]:\n",
        "                s.pop()\n",
        "            else:\n",
        "                s.append(i)\n",
        "        if s != []:\n",
        "            label = 0\n",
        "        return label\n",
        "    \n",
        "    def one_hot(self,seq):\n",
        "        one_hot_seq = []\n",
        "        for s in seq:\n",
        "            one_hot = [0 for _ in range(self.nb_symbol)]\n",
        "            one_hot[s] = 1\n",
        "            one_hot_seq.append(one_hot)\n",
        "        return one_hot_seq\n",
        "    \n",
        "    def generate_input(self, len_r = None, true_parent = False, hard_false = True):\n",
        "        if true_parent:\n",
        "            seq = self.generate_pattern_parenthesis(len_r)\n",
        "        elif bool(random.getrandbits(1)):\n",
        "            seq = self.generate_pattern_parenthesis(len_r)\n",
        "        else:\n",
        "            if hard_false:\n",
        "                seq = self.generate_parenthesis_false()\n",
        "            else:\n",
        "                seq = self.generate_false()\n",
        "        return gpu(torch.from_numpy(np.array(self.one_hot(seq))).type(torch.FloatTensor)), gpu(torch.from_numpy(np.array([self.generate_label_parenthesis(seq)])))\n",
        "\n",
        "    def generate_input_hard(self,true_parent = False):\n",
        "        if true_parent:\n",
        "            seq = self.generate_hard_parenthesis(self.seq_max_len)\n",
        "        elif bool(random.getrandbits(1)):\n",
        "            seq = self.generate_hard_parenthesis(self.seq_max_len)\n",
        "        else:\n",
        "            seq = self.generate_hard_nonparenthesis(self.seq_max_len)\n",
        "            \n",
        "        return gpu(torch.from_numpy(np.array(self.one_hot(seq))).type(torch.FloatTensor)), gpu(torch.from_numpy(np.array([self.generate_label_parenthesis(seq)])))"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "vXdJgnRyrWr6",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "nb_symbol = 10\n",
        "generator = SequenceGenerator(nb_symbol = nb_symbol, seq_min_len = seq_min_len, seq_max_len = seq_max_len)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "o-zawVMnrWr-",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "208e52dd-91a2-41ab-a0f7-833f338cba57"
      },
      "cell_type": "code",
      "source": [
        "generator.generate_pattern_parenthesis()"
      ],
      "execution_count": 20,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[1, 0, 2, 1, 8, 7, 9, 8]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 20
        }
      ]
    },
    {
      "metadata": {
        "id": "b9OeFRAxrWsB",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "x = generator.generate_parenthesis_false()"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "yFuAuGQVrWsF",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "11b99f9f-55f5-40c0-81fa-56a5b05ea063"
      },
      "cell_type": "code",
      "source": [
        "generator.generate_label_parenthesis(x)"
      ],
      "execution_count": 22,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 22
        }
      ]
    },
    {
      "metadata": {
        "id": "CGrwpM8LrWsH",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 104
        },
        "outputId": "c44db97c-abe2-42dd-e3cf-dcd8a88e5d99"
      },
      "cell_type": "code",
      "source": [
        "generator.generate_input()"
      ],
      "execution_count": 23,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(tensor([[0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],\n",
              "         [0., 0., 1., 0., 0., 0., 0., 0., 0., 0.],\n",
              "         [0., 0., 0., 0., 0., 0., 0., 1., 0., 0.],\n",
              "         [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.]], device='cuda:0'),\n",
              " tensor([1], device='cuda:0'))"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 23
        }
      ]
    },
    {
      "metadata": {
        "id": "i9DXlASgrWsJ",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# First RNN"
      ]
    },
    {
      "metadata": {
        "id": "V3HWwzQSrWsJ",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "import torch\n",
        "import torch.nn as nn\n",
        "import torch.nn.functional as F\n",
        "\n",
        "\n",
        "class RecNet(nn.Module):\n",
        "    def __init__(self, dim_input=10, dim_recurrent=50, dim_output=2):\n",
        "        super(RecNet, self).__init__()\n",
        "        self.fc_x2h = nn.Linear(dim_input, dim_recurrent)\n",
        "        self.fc_h2h = nn.Linear(dim_recurrent, dim_recurrent, bias = False)\n",
        "        self.fc_h2y = nn.Linear(dim_recurrent, dim_output)\n",
        "        \n",
        "    def forward(self, x):\n",
        "        h = x.new_zeros(1, self.fc_h2y.weight.size(1))\n",
        "        for t in range(x.size(0)):\n",
        "            h = torch.relu(self.fc_x2h(x[t,:]) + self.fc_h2h(h))    \n",
        "        return self.fc_h2y(h)\n",
        "    \n",
        "RNN = gpu(RecNet(dim_input = nb_symbol))"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "hapmc6cYrWsN",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "169515a4-3524-41a1-b2d4-0862a8c9c7e2"
      },
      "cell_type": "code",
      "source": [
        "cross_entropy = nn.CrossEntropyLoss()\n",
        "learning_rate = 1e-3\n",
        "optimizer = torch.optim.Adam(RNN.parameters(),lr=learning_rate)\n",
        "nb_train = 40000\n",
        "loss_t = []\n",
        "corrects =[]\n",
        "labels = []\n",
        "start = time.time()\n",
        "for k in range(nb_train):\n",
        "    x,l = generator.generate_input(hard_false = False)\n",
        "    y = RNN(x)\n",
        "    loss = cross_entropy(y,l)\n",
        "    _,preds = torch.max(y.data,1)\n",
        "    corrects.append(preds.item() == l.data.item())\n",
        "    optimizer.zero_grad()\n",
        "    loss.backward()\n",
        "    optimizer.step()\n",
        "    loss_t.append(loss)\n",
        "    labels.append(l.data)\n",
        "print(time.time() - start) # Time in minutes"
      ],
      "execution_count": 25,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "301.59399914741516\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "2mC3DwUxrWsQ",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 364
        },
        "outputId": "b23e36a8-76c8-4115-9868-505a61639058"
      },
      "cell_type": "code",
      "source": [
        "plt.plot(running_mean(loss_t,int(nb_train/100)))"
      ],
      "execution_count": 26,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f74a40f2ef0>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 26
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeEAAAFKCAYAAAAqkecjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzsnXmAE/X5/9+TZO/svVnuczldQMQT\nVxER6lFt1dayWsUWz2pra6UV6bdivy2IVq21x6/qV6pttaIWW21VqgLiAS6HXCv3sdxs9r53c/3+\nmPlMZiaTTJJNMkee1x+Qa5Pnk8zM83luLhAIBEAQBEEQRMqx6S0AQRAEQaQrpIQJgiAIQidICRME\nQRCETpASJgiCIAidICVMEARBEDpBSpggCIIgdMKR6g90u9sT+n7Fxblobu5K6HvqiZXWQ2sxJlZa\nC2Ct9dBajEki1uJy5as+bnpL2OGw6y1CQrHSemgtxsRKawGstR5aizFJ5lpMr4QJgiAIwqyQEiYI\ngiAInSAlTBAEQRA6QUqYIAiCIHSClDBBEARB6AQpYYIgCILQCVLCBEEQBKETpIQJgiAIQidICRME\nQRCETpASJgiCIAidICVsAU43dWHr/ga9xSAIgiBihJSwBXjouQ145o3t6Ozx6C0KQRAEEQNRTVFa\nunQptm3bBo7jsGjRIkyZMgUAcPr0aSxYsEB83dGjR/HAAw/gmmuuSY60RES8voDeIhAEQRAxoKmE\na2pqUFdXhxUrVuDAgQNYtGgRVqxYAQAYMGAA/vrXvwIAvF4vbrnlFsyaNSu5EhNhsXF6S0AQBEHE\ngqY7ev369Zg9ezYAoKKiAq2trejo6Ah53ZtvvonLL78ceXl5iZeSiAqOIy1MEARhJjQt4YaGBlRW\nVor3S0pK4Ha74XQ6Za97/fXXsXz5cs0PLC7OTfhsxnDDks1KvOspLXWiIC8zwdL0Dyv9NrQW42Kl\n9dBajEmy1hJVTFhKIBAad/ziiy8wevToEMWsRnNzV6wfGRGXKx9ud3tC31NPYl1Pr8cn3m5s7EBv\nV0YyxIoLK/02tBbjYqX10FqMSSLWEk6Ja7qjy8vL0dAQLH+pr6+Hy+WSvWbt2rWYPn16vwQk4qOn\nz6f9IoIgCMKQaCrhqqoqrFq1CgBQW1uL8vLyEIt3x44dmDBhQnIkJCLi91NGNEEQhFnRdEdPmzYN\nlZWVqK6uBsdxWLx4MVauXIn8/HzMmTMHAOB2u1FaWpp0YYlQfD6/eFstVEAQBEEYl6hiwtJaYAAh\nVu/bb7+dOImImOigBh0EQRCmhTpmmZyj9aHlYgRBEIQ5ICVscmxUG0wQBGFaSAmbHNLBBEEQ5oWU\nsMmR9oumtCyCIAhzQUrY5EizowmCIAhzQUrY5HhochJBEIRpISVscrqoRIkgCMK0kBI2OR3dpIQJ\ngiDMCilhk7Ntf6PeIhAEQRBxQkrY5DS29QTvUHiYIAjCVJhaCZ9u7sLi59ejvqVbb1EIgiAIImZM\nrYQPnmjDlt31+PJwk96i6IYzxzjzgwmCIIjYMLUSzsvmFVBnmiYnBQIBdPd69RaDIAiCiBOTK2F+\nCNTmPW6dJdEHj9cPH80TJgiCMC2mVsLdfbwVePhUu86S6ANZwQRBEObG1Eq4YnCh3iLoSq9X3rKS\nbGKCIAhzYWolnJPFu6OLnJk6S6IPHo9PbxEIgiCIfuDQW4D+UuTMQnamXW8xdKGzh9zRBEEQZsb0\nSrilo1dvEXSj9lD6lmYRhNEJBALgaOA3oYGp3dHpTnFBlt4iEAShQnN7L257bA3+8dEBvUUhDI7p\nlfCZY8sAAN40nKvb0cXXR7PYOAKUmkUQRmDHQb6n+3/W12HrvgadpSGMjOmVcJ7QMSody3U27+Xr\no/NzqWsWQRiVtz87rLcIhIExvxIWumZ1paESrhPqo6l1JUEYi56+YOXCRVMG6SgJYXRMr4Trm7sA\nAEdPd+gsSWpp6+wTb+dmmz6/jiAshd0WTMj6bMdJzF+2Gs3t6ZtESoTH9Ep4mxBv+eM/d+osSWpZ\nvLxGvJ2bRUqYIIzE4LI88faBE20AgOXv7NJLHMLAmF4JjxlWBAAoLcjWWZLU0iqxhAmCMBZ+lSTJ\nQaW5OkhCGB3TK+HbvzYJAHBB5QCdJdEfyo0mCGPQrrJJ/mDTMR0kIYyO6ZUwi4e2d6XnOEOCIIxH\nY1sPAGDqmDIs/s654uMnGjr1EokwKKZXwox1207oLQJBEISMWdOGYMTAfFSOLAYANKdxhz9CnaiU\n8NKlSzF37lxUV1dj+/btsudOnjyJG2+8Ed/85jfx8MMPJ0XISLASpXSlatJAvUUgCEKDcULuCkEo\n0VTCNTU1qKurw4oVK7BkyRIsWbJE9vyyZcswf/58vPHGG7Db7ThxIrUWaXlJeiY7FDozYbdx+O5X\nJ+otCkEQBBEnmkp4/fr1mD17NgCgoqICra2t6Ojga3L9fj82b96MWbNmAQAWL16MwYMHJ1FcgtHd\n68VQlxM2ahBPEARhWjSVcENDA4qLi8X7JSUlcLv5dolNTU3Iy8vDo48+ihtvvBFPPvlk8iQlRAKB\nAPo8fmRl2BSP6yQQQRAEERcxd3kISK70gUAAp0+fxrx58zBkyBDceeedWLt2LWbOnBn274uLc+Fw\nJHb+b3lJLuqbulBa6oTNZn7L0OXKj/h8r4dviefMy4LLlY9sIS5eWpqH0sKcpMsXC1prMRO0FuNi\ntPXk5fETzgoLc+Fy5Yv3iwpzNGU12lr6A61FG00lXF5ejoaG4BSQ+vp6uFwuAEBxcTEGDx6M4cOH\nAwCmT5+Offv2RVTCzUKbyUThcuVjUHEO6pu6cOxES3CikElxufLhdrdHfE1HN1+OdfB4C9zudvQK\nfbMbGzvh7zNOD+1o1mIWaC3GxYjr6RCyoFtbu+B2t6Ozk7/f0todUVYjriVeaC2h76GGpju6qqoK\nq1atAgDU1taivLwcTqcTAOBwODBs2DAcPnxYfH7UqFH9EjQemOKVNk23Mu1dfCOAlg7qmkUQhsb8\njjkiyWiajdOmTUNlZSWqq6vBcRwWL16MlStXIj8/H3PmzMGiRYuwcOFCBAIBjBs3TkzSSiXZmbx7\nu7vXi+L89Bl0P3MqJcERBEGYmah8twsWLJDdnzBhgnh7xIgR+Pvf/55YqWKEWcLpMs7Q5+Pj8laI\nfxMEQaQzluiYxVpXdvWkR+tKn59XwnYb//ORKiYIgjAnllDCecJQ+86eNLGERSVM6pcgCMLMWEIJ\nM2W0ZY9bZ0lSg58pYTspYYIgCDNjCSXM2LIvPZSwz+8HAOqWRRAEYXIsoYRHDyoAAMycOkRnSVKD\nl9zRBGFoqHkdES2WUMIZGXyJUp83PeqEWXa00h0doL6VBGEoOEqbJDSwhBLOcvDL6PP4dZYkNTB3\nNMuOpvOcIAjCnFhCCWcyS9iTZpYwuaMJgiBMjSWUcAazhL3pYQn7A5QdTRAEYQUsoYQddhvsNi79\nYsJkCRMEQZgaSyhhAMjMsKVNTNirjAkTBEEQpsQyV/HuXh+O1nfoLUZK8CmadZA9TBAGgyoViCix\njBJOJ8gdTRAmgU5RQgPLKeHjbutbw8oBDgRBEIQ5sdxVvKPb+pOUvD4+JpzhoG02QRCEmbGcEl7+\nzi69RUg6rB4602HXWRKCIAiiP1hOCbtbevQWIekwd7TNpmxbqYc0BEEQRLxYRgmPG1qotwgpgynb\noBImtzRBEIQZsYwS/ualY/QWIWWwjlk0yZAgCMLcWEYJ52Y59BYhZbBpSTRPmCCMCUWGiGixjBIe\nXJYHACgvytFZkuQjNMwiJUwQBofOUEILyyhhAHDmZMDhsNSSVAmQO5ogCMISWEpjZWfa0dvn1VuM\npOMP444OkBOMIAjCVFhKCWdl2tHTZ/1JSiw7mhOyo8kiJgiCMCeWUsLZghIOWLxgNmgJ6ywIQRAE\n0S8spYT9/gB8/oDY1tGqUHY0QRCENbCUEj50sh0AsPtIi86SJBeWHU06mCAMirWdcUQCsZQSHjEg\nHwCQlWHtnsphLWE68QnCUNA+mdDCUkr4zDGlAACfxd3RJxq7AACcoITpRCcIgjAnllLCmYIF3Oe1\nthI+3cSUsM6CEARBEP0iql6PS5cuxbZt28BxHBYtWoQpU6aIz82aNQsDBw6E3c4rwCeeeAIDBgxI\njrQaZAiNOjwWV8LjhhVh6/4GOOyW2kMRBEGkHZpKuKamBnV1dVixYgUOHDiARYsWYcWKFbLXPP/8\n88jLy0uakNGSKSjhPq+1a4XToSsYQRBEOqB5NV+/fj1mz54NAKioqEBrays6OjqSLlg8sCH3VndH\nEwRBENZA0xJuaGhAZWWleL+kpARutxtOp1N8bPHixTh+/DjOPvtsPPDAA2LCkBrFxblwOBKbvexy\n8VnR3d4TAICPtp7ADXMmJPQzUglbTziyhIlRpaVOFOVnISs7AwBQXJIHV6n+HgkpWmsxE7QW42K0\n9eTmZQEACoty4XLlI0+4X1SYoymr0dbSH2gt2sQ8/0/Zjeq+++7DxRdfjMLCQtx7771YtWoVrrji\nirB/39zcFbuUEXC58uF28/XBx061AQDqTrWLj5kN6XrC0dvL98dubOyAp6cPvb0eAEBTUyfsfuN4\nAaJZi1mgtRgXI66ns7MXANDa0gW3u12839LaHVFWI64lXmgtoe+hhqY7ury8HA0NDeL9+vp6uFwu\n8f61116L0tJSOBwOzJgxA3v37u2XoP2hasogAGkwW9jibTkJwjJQCQOhgaYSrqqqwqpVqwAAtbW1\nKC8vF13R7e3tuO2229DX1wcA2LhxI8aOHZtEcSPDhjd09Vp/khIAKhAmCIIwOZom47Rp01BZWYnq\n6mpwHIfFixdj5cqVyM/Px5w5czBjxgzMnTsXWVlZOOOMMyK6opNNBpXsEARBECYiKr/tggULZPcn\nTAgmPd1666249dZbEytVnFQMKdBbBIIgCIKIGksFT+02G1xF2ZZv1hEOihQTBEGYC0spYQBwt/QA\n4LO4I5VKmRmlsuUoOEwQBGFKLBtE7fNY3xom1UsQxkRZykkQ4bCcEh41iK/F6vVYu3UlQRDGhzbK\nhBaWU8KHTvIF1S++u1tnSQiCIAgiMpZTwoyt+xu0X2Q1yAVGEARhKiyrhC+aPEhvEVIH+bwIgiBM\nieWU8O1XTwQAjBlaqLMkSYQMXoIgCEtgOSXMBt2nQ62wVUuwiP7T5/Gh7pQ1mucThJWxnBJmrSu9\nPusrYYIIx33PfIxfvLgR+4+16i0KQRARsJwSdjhICRMEq5M/5u7QWRKCICJhPSWcRu5oJRQqJpQU\n5GXqLUJaQxEjQgvLKWHmjvakkSVM5zkRjppdp/UWgSCICFhOCTscvEqqb+7WWZLkQRYvES01u+r1\nFoEgiAhYTgnbBP/P5j1unSUhCP3JyrDrLQJBEBGwrBIGgO5er46SEIT+XH3hCL1FIAgiApZTwtJE\niHt/s04/QfSA/NSEApuNMgYIwshYTgmXFeXoLULKoQxMIhw0a1ofqI07ES2WU8LpEAOjWaUEQRDW\nwHJKOJ0gC5ggCMLckBImCIvR1ePRWwSCIKLEkkr4yXurxNvkuiXSjZfe26O3CARBRIkllXBxfhYm\njS4BkF7tK2m7QQDAxt3UoIMgzIIllTAQTNDq9fh0liQVUHCYIEwB7ZQJBZZVwpmOdFLCBEEYGsqi\nJMJgWSXMGtcfPNGmsyTJg05rQo2ywmy9RUh7yOAlosWyStjn50+DI6dpniqRPnh9fjS09ugtBiHA\nkQVMaGBZJXzW2DIAwJ4jzTpLQhCpo72LypMIwkxYVgm3dfYBAA5Y2B2thMqxCJ8wRzsv26GzJARB\nRENUSnjp0qWYO3cuqqursX37dtXXPPnkk7jlllsSKlx/+NpFo/j/q0bqK0gKII8XwWBhGIedP7UD\nFJ0kCEOjqYRrampQV1eHFStWYMmSJViyZEnIa/bv34+NGzcmRcB4ycniLQGvz3oXITJ4iXB4BSVs\nt9POjCDMgKYSXr9+PWbPng0AqKioQGtrKzo65MlOy5Ytw/33358cCeMk08Evrc/SJUp0oSXkMHe0\nnUYYEoQp0FTCDQ0NKC4uFu+XlJTA7XaL91euXInzzjsPQ4YMSY6EccKadTS39+osCUGkDuaOpqxc\ngjAHMWdvSJN/WlpasHLlSvz5z3/G6dOno/r74uJcOByJHTfocuWHPNYriLl5r1v1eSOjJW+W4Gov\nK3MiLycD2dkZAIDi4jzDrdVo8vQHM6xl/6l2AEB9czcAwJmXpSq3GdYSC0ZbT25uJgCgqCgXLlc+\n8vL4+4WFOZqyGm0t/YHWoo2mEi4vL0dDQ4N4v76+Hi6XCwCwYcMGNDU14dvf/jb6+vpw5MgRLF26\nFIsWLQr7fs3NXQkQO4jLlQ+3uz3k8fa2bvG22vNGJdx6pPT2egEADQ0d6Mp2oFeYmtPc3IlsA+W7\nR7MWs2CWtbS38zXCg0pzcbKxCx2dvSFym2Ut0WLE9XR18R64lpYuuN2Z6BSqNVpbuyPKasS1xAut\nJfQ91NC8ZFdVVWHVqlUAgNraWpSXl8PpdAIArrjiCrzzzjt47bXX8Pvf/x6VlZURFXAqKS3guwZR\nbIxIJ1hp3uCyPJ0lIQgiGjQt4WnTpqGyshLV1dXgOA6LFy/GypUrkZ+fjzlz5qRCxrhgMTGfPwB/\nIACbBWNkFlwS0U8+3n4SAFDkzNJZEoIgoiGqmPCCBQtk9ydMmBDymqFDh+Kvf/1rYqRKMKtqjuDK\n80foLQZBJB3WKz3DbqC4BEEQYUmLM/X1NQf0FoEgUsKkUfwc7SEuckcThBlICyUs5eEXPsf8ZavR\n1ePVW5SEQ008iAyhPt6K4ReCsCKWVsKjBhXI7vv9ARxzdwIA/v7hXj1ESg50wSUExDphS5/Zxoc2\nxES0WPpUnTauTHa/oS044u3THadSLU7CoEENRDj8wrFBlrAxoJ+B0MLSSnjy6FLZ/YV/Wq+TJASR\nGvo8fNtK5pYmCMLYWPpMHVruFG+rWY9kURJWo7vXi5wsO1nCBGESLK2EpRcid2tPyPPPvlWbSnEI\nIul09XiRm0WzhAnCLFhaCUv5bMfJkMdqdtXrIEnyILue6OnzIjuTlDBBmIW0UcJvfXpYbxGSBjke\nCYbH54dDGg+mnRlBGBrLK+FMCyao0HWVCIfXG0CG3UZZuQRhEqynoRT0ef0hj100eZAOkiQeutAS\nUvxCn3SHnQ4MgjALllfCIwaEjo/KyLD8sok0xOvjN5wc7c4MA0fBIkIDy2uj2746UXb/7q9XWve0\noJKrtKbX4wMAtHf16SwJQRDRYnklLK0VBoDzJg6A32q6yrK7CiIWevp8wi06IAjCLFheCasxjCbM\nEBaku5cfSjJ+eJHOkhAEES1pqYRnTB2stwgJgeJNhBRmCWdn2nWWhCCIaElLJWy32TBmaCE4jlpX\nEtahp4+3hHOoYxZBmIa0VMIAUN/cjUCAH/0WCARwzN0Bv+WCxUQ6QZawcaC9PREtaauE2zr5DNKT\njV34ZMdJPPxCDd769JDOUvUPOu/TG1LCBoQiRoQGaaGE2UVpzNDCkOcWL6/BK+/vA2De1pZ0nhNA\nMDErh3pHE4RpSAsl/NObzsKkUSX4/nWTVZ8fMcCp+rhRIVcXoQZTwmQJE4R5SAslPHJgAX48dyoK\n8jLFx75xyWgAQHlxDoYP5Ltqme7iRSYwIaG+uRsAkJudobMkBEFES1ooYTVY/Ky+uRvNbb0AgD5P\naJ9pgjALjW38zGzpZpMgCGOTtkp4xpnBWuEdhxoBAH6z+3lNLj7RP7IyeE9OXjbFhAnCLKStEi5y\nZom3mQVsVguCmnYQAF9uBwB2mqJEEKYhbZVwhsqcYVa2RBBmxCdMUbJJpiiRc0QfAvTNE1GStko4\nHOt3nsKnO07qLUZE6AQn1PD5+VnC/ChDsoaNAP0KhBYUPFLw/L+/BMDXFA8oztVZmsjQCU5I8foD\nsNtoX00QZoLO2DA89OwGvUUgiJjw+QKw22hrRhBmIq2V8DUXjtRbhIRCTur0xuf3U1IWQZiMqNzR\nS5cuxbZt28BxHBYtWoQpU6aIz7322mt44403YLPZMGHCBCxevFiISRmf0sJsvUVIDOb4uokk4/OT\nJUwQZkPTEq6pqUFdXR1WrFiBJUuWYMmSJeJz3d3d+M9//oOXX34Zr776Kg4ePIgvvvgiqQInkkgd\nss4e50qhJATRf3h3dFo7twjCdGiesevXr8fs2bMBABUVFWhtbUVHRwcAICcnBy+99BIyMjLQ3d2N\njo4OuFzmUV7ZERrdG3omK/mdCRW85I42DnSOElGiqWkaGhpQWVkp3i8pKYHb7YbTGRx68Nxzz+Ev\nf/kL5s2bh2HDhkV8v+LiXDgcie3R7HLlx/V3gzqCdcFVZw7GwnnnYk9dExY88zEyMu1xv29/0frc\nTGHz4HLlIzPDjpwcvldwcXGubjKHw2jy9AejryUQALKE47awoQsAkJeXpSq30dcSK0ZbT24u3/iH\nnZN5QiOgwsIcTVmNtpb+QGvRJmZzL6DS2vHOO+/EvHnzcMcdd+Dss8/G2WefHfbvm5u7Yv3IiLhc\n+XC72+P6296uoBL29HnhdreDExoedHV74n7f/hDNevr6+Gk5DQ3tyHDY0d3tAcB/t84M47gj+/Pb\nGA0zrMXj9SPgB9zudrS28sMcOjt7Q+Q2w1piwYjr6RKuLc0tXXDnZqBTaATU2todUVYjriVeaC2h\n76GG5hW7vLwcDQ0N4v36+nrR5dzS0oKNGzcCALKzszFjxgxs2bKlX4KmkuysoEVuExJaWGILawFo\nJtQ2SET6QNnRBGE+NJVwVVUVVq1aBQCora1FeXm56Ir2er1YuHAhOjs7AQA7duzAqFGjkihuYpHG\nfe1CRjdTxn4TKWG67BIAn5jloOxogjAVmu7oadOmobKyEtXV1eA4DosXL8bKlSuRn5+POXPm4N57\n78W8efPgcDgwfvx4XHbZZamQOyFIs6PbuniXLrOEO7qM20faPNsDIlUEAgEqUSIIExJVTHjBggWy\n+xMmTBBvX3/99bj++usTK1WKkJZz7DjIjzNkgx32HmvVRabY4C+4Xh/NQU532BhOu904OQEEQWhD\nZ6wCh3ARqxhSoLMk0bN26wkAwMETbTpLQuiF1ycoYbKECcJUkBJWwWG3wW9C47KxrUdvEQidYGMM\nHWQJGwIKGRHRQmesCnY7B5+JtPCZFaUAgKljynSWhNALls1P2dHGgqO0SUIDUsIqOGwcfD7z7GUH\nleXxN+h8T1tYNr/SHU1lawRhbEgJq2C32+A1comS4sJa38w3ZvB6zWO9E4mFWcKsxM4kM1QIIu1J\neyV83zf4iVC3fGWc+JjDzokxNiPDLrRb9roBAHuOtOgoDaEnvjCWMEEQxibtlfDUsWV44cFLcem0\noeJjdhtnqo5Zs6YNAQCMGVqosySEXoRzRxMEYWzSXgkDCJl/nOmwo8/j00ma2ClyZgEI1ooS6ccX\n+xpk/xMEYQ5ICauQk+VAd6/PNEktdhO22iQSy9ufHQIAtAud3widoVORiBJSwirkZjvgDwTQaxJr\n2GbioRNEYpg2jh+qkpOV2DGhRP+gBDlCC1LCKrDBDl09Xp0lUUepakUlbKKyKiKxjBnC5wPcNHuc\nxisJgjASpIRVyBWUcHevMZWwEtEdbRL3OZF4WF6DjUwvgjAVpIRVEC1hkyhh5oameCBBEIS5ICWs\nQm62uSxhdwvfrKOpnXpHEwRBmAlSwipkZfDJLT195kjMGju0CABQLJQqEQSLTNSdatdXEILoB8++\nVYtX3t+rtxhJhZSwCmymsFETnZSh3wxhco7XoPISqedoPa98N+1x6ywJQcRHS0cvPv/yND7YfExv\nUZIKKWEVWG7LriPN+gqiAZPTIUzO8Zig1SaRGszixbEqASoU7jesJ77VISWswr5jrQCAT7af1FmS\n6GAzZGmAg/Vp6+rDh5uPaWbCe+hYIExOR3d6JJqSElYh0yH/WjxeH+YvW413NtTpJFFkHA7mjqYL\nr9X50TOf4OX396Jm1+mIrzNqKIUgooWUcBqTnekQbx853Y4te/l+vG+sPaCXSBFhMWFyR6cPpxq7\nsPdo+KlZZun2lm6Qmzp62rv69BYhJZASViEvJ6iE3990FP/65JB4v/ZQkx4iRSQzg/8Z+zykhNOF\ntz49jGUvb0Frp/qFami5M8USEZGgFiqxs/doq94ipARSwirYbcGvxe8P4FRTl3j/yRVb9RApIpkO\nvqTK4yXrJ9148Z1dqo9fdjY/3pI1niEIs9HZw7uj87KtfQyTElaBWZYAsL42cuxNTzhhf50hyGtk\nWYnkUHtYPYPfbrOhrDAb2Zk00IEwJ0bt3Z9oSAmrMOPMwRGfn79staGsTmkiGY0zTC8unDQw7HN2\nG0eTtXSC2rj3j16PT+aBtDKkhFWwcRweqJ4a8TVb9zemSBptMjOC1s6f/rVTR0mIZKJWljRyYH7Y\n1zvsNvgoWU9XaJ5GfLy2Zr/eIqQMUsJhKMmP3AJycGluiiTRRjo5Z8dB4yWOEYlhz5Hw2dBqkCVM\nmJXmtl69RUgZpITDwJKdwmHUSxuVpliX1TG277PbSQkT5qTQmQkgOKbVypASDkNAI6ijZ8xHTbZR\ngwp0kCR9qT3chIaW1LbV27yX7wM91JWHb106BkDkzaDdbqMGLoQpYcZEVob1EwtJCYehSOGOnnPO\nMJQUBB8zRAKUZJP4wNwz9ZMjzWjt7MOTr27FQ89t0OXzH/nueSjWCJcAgMPGIRAA3t94NAVSEUTi\nOFbfAUBeqWJVolrh0qVLMXfuXFRXV2P79u2y5zZs2IBvfetbqK6uxkMPPQS/3xo7b6UbZNbZQ/D4\n3ReK97V696aabEk9qCE2CBbm4Am+iUCqXb0ZDhtysxywSY/NCMch66D29w/3JVs0gkgYfR4fjrs7\nAaRHnbumEq6pqUFdXR1WrFiBJUuWYMmSJbLnH374YTzzzDN49dVX0dnZiY8//jhpwqYSTpHWaOM4\n2Gwcrjh/OADjKWFpctZug09/MjvSDmqpxGHnUFaYDSC6rFuHzfpWBGE9PD4/AgCGlzvlG06LonmW\nrl+/HrNnzwYAVFRUoLW1FR0Z2znFAAAgAElEQVQdHeLzK1euxMCBfK1iSUkJmputowAK8zLF28wy\nZsouYGCDvzNNitz1YuzQIvF2Kvvberx+cdZ1NKTDBYywHi3tfGZ0r8eXFu0+Nc/ohoYGFBcXi/dL\nSkrgdgcHhTudfI/a+vp6fPrpp7jkkkuSIKY+DCgJliExy5gZF0azhKV095ISTiZHTreLt5/5x/YI\nr0wcfn8AXl8gRAlHOgp31VlnQ2xWuLRQI4nlA6EK4HSazBOO2eGulpnb2NiIu+++G4sXL5YpbDWK\ni3Ph0Cj/iRWXK3zDgv7wvW+cifuf/kj4DCeK87PhzOPdgQUFOUn7XK33zcjgf7ZyV36I2xwAXnx3\nN74xe3xSZIuVZH1HesDWwuZNA8Dl00elZI09wsYqLzcTLlc+Co63AQCczmy4XPlwOvnjMr8gW1Ue\n5WNW+l0A460nJ4f3ohUV58LlykdeHp9IV1iYqymr0dbSH+JZS3Z2hnjb4bCD4zhDfCfJkkFTCZeX\nl6OhoUG8X19fD5fLJd7v6OjAHXfcgR/96Ee46KKLND+wuTmxrchcrny43e3aL4yDgqyg1dHS3AVv\njwftHT0AgMbmTrjd2hmqsRLNejwe/oLsdrerKmH2nN4k87dJNeHW4uvzpmSNbLZqwB+A292Otjbe\nSujo6IHb3Y4O4bhsb+tRlUf6mJV+F8CY6+nu5sMULc1dcGfZ0dnJu1hbW7siymrEtcRLvGupELrA\nXX3hCGzd14BAIKD7d5KI3yWcEtd0R1dVVWHVqlUAgNraWpSXl4suaABYtmwZbr31VsyYMaNfAhoR\nqYJj4TXmImEp9EbiuhmjAQCDDNTNy2qcbOyU3W9uT01nn94+n/C/PNQQKSryzA8vTqZIBJFUCnIz\ntV9kATQt4WnTpqGyshLV1dXgOA6LFy/GypUrkZ+fj4suugj//Oc/UVdXhzfeeAMAcPXVV2Pu3LlJ\nF1wvKgYXYNPueqxYvR+Xnzdcb3FkXD19BN5cdzBtDl49+OOb8t7cxxtSsxlzC41BDpzg3dBKD4ha\nmMiZE3Trdfd606LcgzA/7EgO5+WzGlGdlQsWLJDdnzBhgnh75870GBjA6nClGdOBQMBQBwrHcXDY\nObE+lEg8jW09svup2vCwcZVaE77C5QE98eoX+Pmt5yZYKoJIPFrdCq0GbY01eP6nM9Hn8YulSdKm\nGJ09Xpm1kSoiHaMZDhu8XlLCyaKnT96b225PzSbM5+N/9Hg7CB06aY04I5E+GMi+SSpUza+B3WaT\nufF6JRfhxtYetT9JGWpWeIbdhj5SwkljzNBCAMDEEXwVQKq6ZgW9G5zkX8KopJkxlxTS5RgnJRwj\n0ob4RpzwkZ3pQHcf1QknC4fwm7MkuFS1CD3VyFcV9PSjBpxlWBOEkQkEg8K6ypEqSAnHyEBJ5nGP\nAccG5mQ7qFlHEvH4/LDbOGQKTTNSZQnnZgs5CU55DDqW+Nl9v/2YRl0ShicgpGalhwomJRwzJfnZ\n4u3ePuNd0OpOtaPP48eBE63aLyZiJ8Bv0FlLyA82HYMvhUNL8vqZg9BJ1jBhdERLWFcpUgYp4RiR\njpD7bOcpHSWJzNZ9DdovImKGN3zlzQjveHxtyj5feV3SsoMXf0eeEZ3qyU8EEStppoNJCcfDhZP4\ngRU1u07r8vmRLqNXClOeRg4sSI0waUcANg4odCa+W5rGx8qINlw2rNwpu09KmDA8wiFqpPLPZEJK\nOA6mjikDEHpBM0J9W3lxDgCgz2s8V7kV8AcAcNClNA2I/cKknKRESpgwOgEor6s6CZIiSAnHgdoF\n+HRzF257bA1WrI5/gPr2Aw3427u7+qXMMzP44RiUgJMkAkFFOGpQ6prKKy9MUnm0WHbXBeLtVGVz\npzthfy9CE3krWOtbw6SE42Dc8KKQxx56dgMAYFXNUby7oS6u93369e1Y8cFeuPtRf5wlKOE+AyaN\nWYFAICBeFn50w5kAgKEuZ/g/SNjnKh+J/uJUXpyLaeP4oSte6qaWUtLEo5pQ/vHRQQDGHhebSEgJ\nx4FNcmZ19XjQ2SPPOH197YGY31Nq/fan41UWWcJJJYDghTU/NxO5Ke7HHO81fctefgb4L1/alDhh\nCCKJXHDGAL1FSAnUtrKfbNxdj5fe29Pv92nr7BNva1orEXaIrK1hr4csnmTAW8Kx5ignj/SwFYh0\nYd+xFvF2dmZ6qCeyhPtJokJsj768Rbzt9Wm/aTiLiFnC7V19YV5BRIPfH8Chk20hLjGpJQzo4G7k\n4vvcpXfyceGywmyNV5qDVz/chw21xi0RJOLjvxuPAgAumaoxqMRCkBKOk8umDQUA9CSoReTIgcEk\nn/7E7Vj268fbT/ZbpnTm9sfX4JcvbcLuumb5EwF5hnJnjxfH3J1INv0Nj7FkwhEDUpdMliz6PD78\nd+NRPPf2l3qLQiSYfOE4nTl1iM6SpA5SwnFy6BQ/13XdtsQoO2knrp2HmuJ+n8FleYkQJ6050RBU\nqk+8uhUeSYxe72SREFd4lPKwPudWSMzS+zcgkgczIrIz7TpLkjpICcfJpFElAIDTTV2qz8d6sWto\n7RZv//uzw3FfaFhP43HDQjO4iej4ZId8Y7X7iNwa1mNuh7LkJVYRHMLIxW0HGhMkkX6QDrYu7Lrp\nsKePakqflSYYNbfeFecNF2/HqoSbO3pl99+II8MaCLpK9x5t0XglEY4uIdt9iOBVkDa48CuDwilG\n+dHR6iN2URtYkqvxSuNjhKY4mphARCPCvE4ZjvRRTemz0gQzenBoW8jBZXmSeszoz8LuXi8OHG+T\nPSZ1iSqh8zu5tHbwSW1nCb+l1B2NQECmCEcNyk/NBUP5o8e4D+A4DjaOQ162+TNOV9Uc1VsEIknU\nHuZDcWQJE5qoXXhHDS4QZ7ZKS460UJt4xIbGh4WaACSNAyfaUOTMFDOJ+yQ114GA/KvnOM407lGH\nnbNEPPXLuvhzJghj093Ln2us1DIdSJ+VJpjcbHnryokjijG4NFdskhHLAPU9R0Jdx4noTZyozO10\n4mRjJzq6PRhYkisq312SDOkAArLsaA6pcY+G+4RYPrrP68ehk+3wmLyv+MBi87vUCXXYdY8sYSJm\nfnLjWeA4DmMGFwIA6pu7Nf4iyH/W820uC/Iyca7QJebVD+PvQc1IRemM1fjZ858DAHYfaUFJAW8J\nu4pyxOcDAWWdcGpdEuzjQhuGRM9Df/w0QdKkHq/Pj08NPEKU6B8OOycOoUkXSAn3A7UG/m4hy/mt\nTw/F/H43zxmHb1w6FgBffxovbMpTZholNyQD1vhEmg3d0NqDpjZJEh1nvpKZPcraZwPS2ePB/GWr\n8ea6g7LHP9x8LOR1BGFm6CrdD2aeFVpQfkElb8mqJW6Fg13jxw8vwnitWHAU2IVylMZ+DIIwMn5/\nAM+9VZvUec5DyvJC4u4+f2jGOwekJFOOubz7YwGbiRf+vQsA8PZnh+Fu4Te2TW09WLF6v+x1lKRl\nbY65O9DV6zVHRnyckBLuB1MqykIeK8zjh713xhATZodXhsMWVSxE63DMEXquWnVq3YETrdjw5Wn8\n6V+1SfuMb86sEG+zr1HtOsBxXGqz1TnF/zEw1GWeRi4FeZnibVZu16qS7FgoeZ2RsOippxsNFjUo\nAFLC/aIwLxPXzRiNn1RPFR9ju/baw7G7/Ngs4EJnpmZcJJJFNKgsV5AhmEXa1tWHDzYdlZfbmBTp\nvNFkrafP6w9+wxGuqOw1yd6pJ+LdL5o8KAHvkhqk7UKZu19ar335ecMAyJW1EUl1zoDZUR7nZwtl\ngn/6V62soZGVICXcT665cCQmjiwR759ZUSreDtdNS0l5UQ6KnJniiEQbx/Vr+PpHW08AANZ+cVx8\n7Pm3avHKB/tCYmqp4Ee/+wQPv/B5wt5P2ohk37EWzF+2GsskAzASgXRucGRLWP6aZBM6vyn6T55z\nLq+4SgqyEihRcsiRjIhk37v0nDhyugMA8JrCPU2YH+kxXiwcq4dOtuGpFdv0ESjJkBJOMMyaBYAT\njeGzk70+v2g9Kcte7Lb+1XPeeU0lAKBCEpdmlvn7m1IbQ+v1+NDW2Ydj7k4cOB5aDx0PrJkGAKzZ\nwm80Et0hbNKoUlHDRrJyuShekxAUbx/PMEUmqyyxzKC4ioK91Nm5kCU5t86dUA4g2BObsCYZkvBc\nLGWfZoKUcIKRXih+948dqq/p6vHgzl+vxaN/4603d0uPzMXaX0u4yMm76NqFg1bqspV+jhYsQ/W9\nz4/ELYu00cWSv26O+32k1J1uF29vFobVJ5rcbIeKw5//Tc4YGUyeEy1hvUzh2J4WOR6hI5sRkB7+\n7Lv1ColxV5w/XKwnrW+xpouS4LGTEiZixabYmavFLGt21wMA9oexDJs7etHSEZqE0ufx4d+fHUZr\nR2RFyqxxNonkrifWyp5fvSU6l3StMM3ptTX747L0TjZ04id//Czmv9NizNDChL8nELS42PALpYJl\n/9sUzTqkzyWLsG8f5+fG0tFND05JQjns2GO19wW5mRgrGVDSnw0rYWzY4BE1AoEA5i9bjfnLVpu6\nAQ0p4STToqIw//LenpDHpFnR4ZKNPt15CivXHYS7pSfiDAHmwinIVU9a+dt/90YSWaRXYsXGYkEz\nnv/XDvQlIXHKHUMjlFjweHhZpd4MQBITZg/I+1Yqn00qLCEv3nyfKULOQnevcbup1bd0y3qnMyXL\nwhCuohzZxXnHgYbUCkikDGkP/ivPHy57TlqCeehkO8xKVEp46dKlmDt3Lqqrq7F9+3bZc729vXjw\nwQdx/fXXJ0VAM3LrFePF25EuliwDOsNhw7Dy8OUjC59dj/nLVmNVTXRuYVuCtla5WcHWmT19se80\nfQoLhbnJ+8uBE23aL4qDHo+8by2nULAs0W7nwWDWecrc0WE+INaPZQNGjKyEu4VGNaVCUg5bOqvT\nzsywyWLBVsj4JwQUB/R0oe8CEOpllBoJe44YvwFNODQv1zU1Nairq8OKFSuwZMkSLFmyRPb8448/\njokTJyZNQDPCOlYBwLb98vmt0oYPmQ4b/vbfPfB4/aqlDMvf4RsWMDdctK0w2XvtPNS/RvfS3tNK\nhRoNTYraPjUX+9Ovb8P8ZasNUX7g80Ueo/bInzeGPMYs01TFhIOHSXymMMs6Xrv1uMYr9WPTHj5c\nw8IqzB3NrCKHjYNdstM0ZHIWecjjR3ItHFSah/Mm8kl4ynNMaiW/+fEh/PW/oR5GM6CphNevX4/Z\ns2cDACoqKtDa2oqOjg7x+fvvv198nuDhJBeFl9+Xu35/9ZdgctIxdydWC9m90jjjAGHm6yfb5cPl\no0V6UZLGcpfccb7q6w8cb8Xbnx2WPdbd68UL/9kl3lfrFqXF4ZPaFut2Ycj8joPRbxiGlzuRnWnH\n7380I2aZIuEVNhp2xYaIfYUsIeuSqYPF54IlSqmtE2bW38EYvQI5WbxiO3C8DaeboyuhSzWslzqL\nW7P9H5vRbbfbxK5wgHoTD6OQ6O3B258ewu/+sd3SHaSUsNI65ZqVHhBWKWE2NIeLNjQ0oLKyUrxf\nUlICt9sNp9MJAHA6nWhpib48pLg4Fw6HXfuFMeByhfZw1hOnwtVXVJyLDGHNdafUYxf7j7eK65Aq\nUV8E33KkdU8ZU4bt+xsAR/AnHjggWLJUXJInxqHnL1sNAJg4uhTTJ/MK5vl/yjO7CwpyYvqej9Wr\nr7OwKFdWxsXwc1z072/jkOGwYcSw4uA60f/joE+4ZOblZcHlyodbsNxzhdh6nvD/PTdMFadoZQmW\nZWmpM2SyViJxCp3Y2O/Q8yVvLe47xh83+U6+pCdf43dyScqT+gIxfOcpgilaINg/PTc3Ey5XPrKE\n8IirzIkB5cFjuam1B65pQ1MrqAY5QvZ2cUkeXK585Am/X2FhruZ3Hu75QCCANz/me9Ifa+rBNKFM\ny8jEenzZbBwcdvlx2dzNHwfZOZmyx0+qdNEqK3MmrUFKss6VmCd893cH1pzg3bfLlQ+323hB+SV3\nnC9O5Llz6Qd4/HsXav6N290OlytflpRyx9IPVF/r8wcirtsvWK4HhNmrxflZCHiCm4P9hxpRWpiN\nLsmgiKUvbsTyhbMAAAOLsyGlobETJbnRK5n129R3pQfrmlAqzOntlcSZW9u6o/4de/t84DgObnc7\nfnD9JNzx+FoAwLHjLcjKjH+D53bzHh5PnxdudztahfKXzs4++P0BbPyS71Xd2tKFTmED4xHW4HZ3\nIDc75tMpatqFBL/29h643e0Y6eK9JWdWlMLtbkd7B39Batf4HgOSLNKDR5owrMRYE2ukYYnvXjkB\nf353N9o7+DU3C891CfdvuLQCr685gLKibMNdA7qFcprmpk7kOTh0dvK/X2trV0RZI13PpBnAuw64\nMazUWL+dkniuzX5/AF6f/NrW2srrjM7OXtnjew42hvz96fo2WagiUSRCz4RT4prSlpeXo6EhmH1Y\nX18Pl8vVL2HSgUGlwUSrXMFairaUgrmj+4NDOBCPNfCKZXBprszlzWbkNrXLd5MsC1opa6wx4SyF\nt6Nq0kAAweQngO+Cw/B6o39/n88vegvsNpvYpay/04xYJrf4PhJX886DwXNAmske/EpT6x5kSSr2\nCCUcagyUHFvJqrHuDywDekpFqdgt6R8f8ZOUmPsxQ/CkHBW6Zv36b4mpPzc6Urf7bpUZ5FZA7Sxi\neRfKPAbWv6BAYhzEETXTHU0lXFVVhVWrVgEAamtrUV5eLrqiicj8bN7ZAIL9bdlFJNNhkylEJblZ\n/beomHJlLSyL8vkLGotnso9n02oYD/yBnzXr88lPh+1hykCUypqNlmONFS4/bxj+3wOXYKfQx/qz\nnXycOxAIiIlnALA7huxGnz8gc9mzuclMeW7Z68ayl7fIsiejgfX9ZhuRHiGs8O6GI2ISyAVnDFD9\n21SVqrJVMyW8bX/85TnxZLwnGzYrePuBRlls3uP1ia5qh7D2U1G2hbUKUq/VEBMN44gV5ZWRHQZ9\nHr8snMc8aj+eOxWTRwsbcRPWjGsq4WnTpqGyshLV1dX41a9+hcWLF2PlypV4//33AQD33Xcffvzj\nH+PQoUO45ZZb8PbbbyddaLMwvJx3PzDrjymmylElyMuRK1p2EAFAVkb4n2VQaXRWMuutyw5alqU9\nURiVyBSUtPuUlH1CIxE2eUeZ5e3x+vDa6v24/fE1WLF6n1g0/4OnP8ZfVu1Bn1BzO7w8H1kZdtHC\neXcDv3tt6+yTTUY5fKo96lBHc3uv7G8b2/jbm/fwlt3vV+7A3qMt+M1rfK/Znj6vzPUdjkzBeh8x\nIF/2vkAwc3rYAPkGlG0GpLFMLe5+Yi3mL1uN7hhGtClfx2qZ1TLOo6UljtrvZMNarX51+gjR4gX4\nDWyXsClyCNnrJwze9SvRSK1flryWDkgNFuk5yVqbSnNM+kzYtCMqk2vBggWy+xMmTBBvP/PMM4mV\nyEKwUpf9x1pRe7gJQ8t4hWa3cThv4gDZMIXqy8aItyO1Z7v1iglxDSuYXsm7g1kXrZ4+n+zCPv+q\niVj+zi4MLMmFPxAQM7MnjijBMXdnyHzkf39Wh/eEumXlTFfp4Ii2Ll5JTBvnwpa9bnGSj9posu5e\nn2ZcNVJ964vv7sYAyfQp1k/6nqfWAYAY7w4Hy3BmMkyvHIiXhMYqrEZYmTnNLNKmtl4UObUHI3h9\nftHtfe9veLleePDSmJNJ2GdFuymT8txDs3Hnox+gobWHH1RhoEk/zLp1FeXINgkdPV4xk56FOi6e\nMhgfRtn9LdUkI1v+1Q/3Jfw9zYD08JSGxaRRox1CfPi11ftx29VnpFC6/kMds1LEk69uxVrBNbxp\njzukHZs0hjxykFzhxcO354yT3Z9zDp89yiyonj6f7IAeNbgAOVkOOOw2bNkTjBXOmjYEgLwcYPOe\n+pCSJiVMOQwWNh4zz+Ld4J/sOAl/IIA3Pz4Y8jddPdq9YZkLtSBMkthjr3whuy91Se892oItEeKg\nilCwuMMuyMuEU8iMVlqehwVPQ31LZNcos8TVplhtFNqYRkLtkp6X7YirRnZQWfBYk1oWRoB5M7Iz\n7bLjU1ruxpLv5ko2rv3NB0gaEX6ePUeao263qFyftH+51ZFuEn0Sj5N4vnLBEF5bl/n6S5MSTiH/\n+uSQeFua3PPMDy+Wve7WK8bjuhmjVd+jPcqDjBW4M8qKeAsxO5M/WNdtPY4fPP2x+LyN4y30Y+4O\n/PGfO8XH8wXlI1UUf3gz+LwWg0uZ9R9c72c7TuFLlXnLv4piwMMRwX0+bnh0FyFp3HPZy1vw+5U7\n8PgrW1SnLonXOclJn5ftQH5OBjyCMlfG4tjJ/9xbX4aVYcfBRnzvqY+w5ovjqi7UfUejny4ltQoy\nM+yi2z9e4mnCkkyYJXzW2DJZbTrb9F00JTgTWXoOvWMy9+xnO0/isVe+wPJ3dkf1euV5b8R4frKQ\nNs+RWcIIauGF354GgJ/xbjZICetA9WVj0d4VtKiyFWU1dpsN11w4Ej+/9RwAwO1XBzuSVQyJzkrO\ny1G3FPMEV2uhM0tmJfZ6fKqZtlmZ/CHCmjxEC2u0wKyW1s6ga1H6uZedPVT2N1qJFb99g2+bukmy\nKYjkkj2qUq+8+0gLfv33L1RezX+29Fuw2Tgcb+iEhyUF2eWnzF1fr4QWNbv40qa/rtqDsUOLQp4/\n2SRXzEdOt2P+stV46LkNStFkZDps6I0zBja8nI9tGymRRRpXz3DYUV4c/F1Zpy9HGMt/5bqDYWvw\njcihE7ysnwtlb1o0CR6LmUJiZaxNWoxCV483ckKdikfDKbmWyTaNbKCK5PFPdoQ2OAoEAoZubkJK\nOMk8/9OZYjIUIyfTjkZJ0wTlhZ0xalABli+chQsnDcKFkwbi7HGuqHd6No6Ttc9ksCzpo/UdsseH\nD8iXzellMAu2u9cX06QS1miBbTDOHhe0zKUX269OHyH7u5MRTtBwHZ7OGhu+ZC7cIHA1CzBoCQcf\nY64wsTxG0dJyQLF2TDZP0sRDzeUunZlad6pdbI95uqlLJQYeFK4/ljCbRKXMgteD2kNNmL9sNZb/\nR56pP2ZIIb51Ke9yPiw06Ff2D5aiLLczJAG+OU6ssWxWddDbT89HrOw50qwaQomHw6fa8P2n1+Hn\n//d5xGuJMkVBes69+G7Qc+CXnK9Dw/TeDwQCePatWvzixY2GDVmQEk4ydpstZBe2btsJzL9qIipH\nlYS4osNx+9Vn4N7rJ4PjOFx5/nAxizQSW1XKV9QU/vKFs2DjuJD4orLN5aN/2yJToP/34KWaMrDP\ny3DY8KMbpgCQD2Aocmbht/ddJN7/+f99Hva9Hnp2g+rj188YjetmjMYv5p+HR++6QFMmLaTZmNmZ\ndjjsnDi5KVJpWTikFtq/Vdym0ovM3z+Qtzll37fa5SPDYYt7EANr8fdlXTNaOnojxsqTzZMrtgII\nJtdImTSqBEDwe4iUEc3qiY3Micb4yqpYedLowQWiNyvZgyu8Pj8ee+ULvPz+3rimqEnZc6QZ//vi\nJgD8BjgW2cPnPfBnBX/tCp5D9ZLNurulGzW76nHkdIdstrmRICWcArp75T/+966dhOL8LDwwd6rM\n1RItN1w6Bj+bd47m66JRF2Mls3mVClqaLAbwSUgsFsVx/MF/boTWeSUF8q5bbED3JkUiUn6YkYuR\nGFYeLBWy2Thcc+FIDCt3oiQ/O8JfRUZtp1xenAOvL4C6U/zGIVIpUrgyKKmbXy3zXfqpxxVKRmmw\nS/cAx4X6aGn9aLSwt331w31Y+tfN+P3KHXj7s8P4wdPrcEzhJUkm0osxq/tkzVcAIFMRqlE2qXj8\ne9PF22YoWVKWhUW7p2O/cW62AxOEfIjTSa6Tlv42/Q1bKHMwPDF4YJTZ+0yWcIYti58fc3dg1cZg\n5YbXAF4fNUgJp4Dxw4NxwCfvrQpRTsli1tna/XSlu8xwNXY/uuFMALySZkronPG88r3765V4dsFM\n/Pa+i1CqWFeTIvM2XDxPiVaTjbu/Xon/CbMJicVQ/WKfuvUnfY8cIZGNbZbKi8O3CnwvzKjJcg2X\ntTS+l6No1NLK5lGrXHFYnSTbIMTCA9VTxdusXOzNdQfR2ePFuu0nYnqvPUea8bPnN8R1od53LHhx\nZsfixJEl4mPKfAklJQXZ4muiKdfSOz7IkokuPYuvOhjmiq7xUbDRjx35QmXA/uPRJ/TFg2oSVJwo\n54ovXl4Tk3v4ke+eK972eP1Yt+0ENgjxdKWSZiGLh1+okQ11iKWWP5WQEk4B0otTcb52LWmiuO7i\n0bh4yqCw05MAuWXx2F1Bq0JqaU4QNhFen19MuGJWM8fxwxTyczPx2Pemy1zUSp1rDxP7BoDZ5wQ3\nDPc89VGIa1K6Kz9v4oCw4wa1qJo8ULz9u3/Ih1QoS5SAYIIbGyAe6XOl2e9SfBonv9TVl6cYAvHI\nnzfC7w9eAqWyXX4eP+S8ViXTXIvREcrgPtgUWwzwsVe+wMnGLjz9hnr8PRKsqQwQHMzeLInt5iiU\n8BSJlQzw3pjXH70amRk21cEgUp5+fRtue2wNbntsTVxTwWJBqV5YMhKrqWcK4UiUXgfW6Mdu51Ap\nuOj/smpPUudCJzJpj50/LD+mrbMPPb3Ru4eHDwj2Xd60p14WG2Y6+PLzhkV8D1LCaYxaOUwqyM12\n4LtXTQxxK4eDlTEBwD3XTRJvSy9uf1nFN6/oVEkwsnGcLGaqPIfD1fYCwA0zgzWfgQDEbleMWqHt\nZWaEbmIAm8JiQ2lBFr45swJ3XnOGLPlr5tQhstfvPBRU9kzVSXfWRUIi3C7h89WUcKVQs3n1hSNV\nZVKz7AtyM2RyRepgJlNuEi3MLkzra0+pfm4klBa3EqUXIxzSCzUXx+A+aXYws4TbJD2SlSESZekd\nw8ZxmhYua/YBQDUJMRmwb0TZlvVgFGM+pYizlO0czpQkXKrlfSQKqSUcTce5SLDj7cbZY3G+0PpV\nOq+cEekXvKCS/7sXFH0x1CYAAB2uSURBVAl8nPi/fLa30ovy0/+3PqpeBKmGlHAKCFcupBdaF2AA\ncBWqu12Z61SZXR0NriL5ey6TJFFlOGyYHcF9zuLI18+oiPgZNo7DY3dPxy9vPx9XXTACF1QOlClV\nm40TlSYAWXaxWnZ0hkLpq4USZgquxX9/dhjzl62Wudm27mtAza7QZhxP33cxvnFJcC1//2CfTIks\nXzhLtPp2HmySDbtgDCt3wmG3yZRWLEQaFPKb16OzaqVyOXNi63nu8fpkmw72vU2WWLtKV2O4HISe\nPh+OnO4I6+JUlsXEau3HQu3hJjS0yDcxSqvyh9+cIiZYHXdrn0s+sW+2DQ67DddeNAoAX6aWLE40\nBmPskVzffn8Af/rXzogNfJjnwWG3idcfta55kbjgjIGqj7MOd8rZ3kqvCQB8/+mPk57QFiukhFPA\nmSqlQnry1PerMP+qiarPPXHPhVh29/SIpSAAMC1CWVA4lBdUZaxUqpSUfCY09m9o6Q77GkZxfpbY\nlATglSPDxnF4oPos3DCT/6xejw+vfLCXd5epuKNZ+07p3ytRJtexhiKBQADP/GN7yOvVNhvrtp0Q\n3WXM3XiTpOsZU+RKa3NIWR58/kDYJJVIfP/6yWGfY0lfWkhjfcq4XyT8/oCYzcxinGwNkTLQMzRm\nke84EJphDchHJAJ8Eli4i3G8MWOf34/bH1uDJ1/dGhJOUb5lWWEOhgidy1jtezgaWrvx1qeHAQST\n/Nh3lsxko30SD16kz/nycBNqdtXjzXXhs9OZVW23caJ3KVZlGC4UJB4TTAlrfCXSPAQjQEo4BbiE\nrM9Rg4wxQD0rw46LpgzC43dPx58euET2XElBNsqLQq3gMxW7ymtnjAr7/jfOHgsAWPDts0OeYz2o\nlbXTAEJmAc9ftlq8zZKQ5pwbOe6jhjRhjG0uWE/r59/+Eh9sOoYVq/epuqOl8dpwVpgyu7uxtReP\nv7IFtz22RvX14WKXTwo1zdnC8xkRYujBz+YvxlpxZzUGJWBkpvSKt3mPO+pY69Ovb8N/hczVK88f\nEfG1d0fREOUrwnERVqEpLswvv78Xdz2xFhskrvzTzV144A+f4vU1BzQ/T41t+xvDWuLSTS3rssYs\n/obWHrzwn/Ad16TKLTjCkj82khnblnblevn9vWE3J6ebgxuccPJIlTBbw5Mrtsbk5tbKA7EFTWEZ\n37lyAp77yUzx+Wg8gamElHAKmDq2DN+7dhLu/9ZU7RenkLKiHM1kFsY5CgWkTCCSMuecYVi+cBYu\nmRZq8TG3XLRzcNlu2S249+Ip6WIt7QCIG4xjCkuvpaNPdQd9hiRTN1y9ojL21Of1hZTSvCBJWJP2\na5a6hFnuAGtYUugMLd3yKJQti5nGYxGxa1ZWph3LF87CH+6fgd//KFi3HggEsG7bCfy35gheX7sf\n85etllkvHd0e/PrVrbL3fOWD6IYM7DzUJN6ePLpE9pzSEh5cpp3TIG1nqVayFU45rvniOLp6vHj5\n/b146NkNaG7vxXs1R7D/WKs42jJa2rrChwWkCuxB4XiUrvPTHfxmQC0ZSnosseYw7FhMZrMV5fpf\n/XA/Vq4L3aBIN4D3PLVOtREHk9Nu42TnVCwNVpThrHAof+spFaVw2G34ipC4ZbSeHaSEUwAn1NPG\no0CMQqJ61bITJJzLUemq7fX4Irb4jIbSwmxUXzYW9143WbS2xw2Tt4/MyXLIGsIzvnNlcGJYuIuy\nMk78/Ntyq+b6GaNl1vVQSf9pNiBDynnChkftO1LGD1lyi1I5RwPHcXjingvx1L1VAPjvIDc7Q2yQ\n0d3rw4vv7sarq/eLIyhfX7Nf/Pv7fvtxyHuu2XIcf/rXzmBpVRQoPSCROiaFY6ik1EetLWK4RN99\nx1qx8Nn1IV2hlv5tc5jWpuGJlE0s7RXA9nKdks1CeVEOOro9uHnxu3jpPfV+0t+9coJ4DWGb2K4k\nZkezmC3rl/7+pqP492ehzWa8knV7vH40qyS9se/GZuMwenABZpzJb5piUYiFeZkRr6HhpoGJiVui\nu9pYWpiUMBEVUkujP/glbik1bpozDs/88GLR8lZ214l37N5Xzh2Gs8cH49hXCOU9jB0HG8UkIWmy\nlvSkPxChX2+kzQHLmmZW74wzB4vPDVWx8iItUdmikymcSPG4SJQUZIe459haPlGpF25VSQL75W3n\nye7X7KrHn9+NPJigpCBYqieN3wOhvzH7DZTjNJWwbHM1l2hAOO7mzhoT0ukt3OjQWBOHVK1SYS3S\nGnzWOnbG1OBxMKzciaa2HrR3efDRVvn3zkIi0nPQ6+U/K5klSn1eP+w29fa3UpglXCaE3ZShkY5u\nDzYLHdnsCne6UiFq6cdnfnixrMPeKEmpHTtqwilZtqk1mA4mJUxER1aGPa6xeUpYdvMV5w8P+xpn\nTobY2MPvD2CP4KadPDo02zFeMhy2kPdjyic/QilVOO65dpLma/5n3tl4/O7pshjyxJEl+J9554hl\nG0BopzIpRYo6c+XIykQk6owXOjK9unp/yHOs1EZa6jFEpeHE9gONmL9stWpJSCAQQJPQO33e5ePh\nzMnAtHHBzYVyE5KXnYGHbp6Ge68Ln0gGBC1mtYQfFpNUltFFYviA6BppMNSUeZngJblfaHgDBEM5\n5UU5+M33eS/E5r1u1bGSUteqrHQunz+GEnFOhiPgDyA/NyOiW/5kYyfe/Jivj2fu+J89/7msLO+N\ntdLjiJfXJvzPjOi9R1vws+c3oKPbo7nRzs/NFDOfpQNt2J95vH7VNpvseaP1kCYlTETN7QkYlj11\nbBleePBS1WlCUlg3nI+2Hhfdu0UqMdL+oMxg/Y/Q11mZaPXY3dORl+3Ab35wEcIxaXQpli+cJZYr\nqZGXnSGrxWaMHlwgznkG5JuNh79zjswCUg7wkCovIHTUYjxcFqFUrL3LA78/IGuyASBkPjbjkx2h\nNczSpgns+5L+vVq98dihRZqNbth3+MSrW0OsoWffquVfI2y0pHkC4VDmPew82IjHX9mC19fuV62j\nVnMNs8+bNLoUd15zBn74zSmy5wskv6e0eQzzGIVraOEQeiWv2xY6Nai/+P0BbNpdj/qWbthsHKom\nB48/pdLfJJk9LvUgSb+frftCa5k5QfOw3+m9z4/gZAx9te/+eiWuu3iUrKKC5Y089do2PPCHT0NK\nA4N1xKSECZNy/hkDsPTOC/D/FBnVsRKNS5ldcFlpBhB9d6H+oqy9dBXl4NUlX41qgtW8y8fLLvAT\nhkfebDBu/so4jBqUjwdvOksWIx05sADfvXICbrl8vOomQPldJirz85zxcuUu7Wh2qqkLp4Qm+XNn\n8U1WWMZrgeI7UovnsklA0ox7qbUV74xjqZKWus39gYD4nmzTkhVFQuKuumb84yM+ESkQCOCp17Zh\n95EWvLvhCBb88TO8vna/eEH3+vwhceXvSvIJAOCCyoEh5Yocx+HCSaH1r1/W8YlrLNavTIx0Ct4a\nNetZjZaOXjz28paoRiB+suOkOFO8pb0Pk4UNZnlRTshvwwabTB1TJqu/l7rm2ySzkNnhKnUN+/2B\nmJuOZGc6cE3VKNnvmKdRpx60hGP6qKRDSpiIiYEluVFdwPrLQzeHWiosYShRvPDgpWKtppR4W2Iy\nxg0rwh/un4HHvzcdP54bXUa8w27Dz289V3QFS+E4DpeeNSTsJmCmJLaYKO+kNNHpJ9VTcdPscaLS\n3LS7XhyWwDK4J4/in7v2Ynnpmt8fwL8+OYSnVmzFG2sPYP6y1WL9qTShRzoSMtzISi2krTiZO/Rk\nYydul5SKsfiy2j6QbSik/Gd9HXo9PlUX5rsbjoiNUtSGKUR7HN1+9RkhOQpPrdiGp1/fhlNCwwzl\nxlBadqdMCPP7+f7Yfn8Ae4+2oNfjw5otx7HnaAt+9ZdNmvJIE9uk624X3O3SODT7Hq+/ZDS+dtGo\nkNeGg/1dze7T4oajv1RNUs9bYRUgbKNIljBBRIFyGATAZxknEo7j8Mvbz8cT91woezw3AdZkTpYD\nZYU5YWdFJ5J5VwQtrngT15Rccf5wTBvnwk9uPEscqMB6Ve+qa0aHYN0wZT3/qxPxg+snY8aUwbL3\n8Qd4JbzzUBPe2cC7+3+3kne71krKlL57VXAN8VrC0gxx5sbdXRdsFylteSntjQ7wG7LLzxuOK84b\njsqRxfjD/TOC7+v1i4pukqKcqtfjw+OvbMHPX6gBwCcAMot8YBQDJRhnjgnNd9h+oBGPvcJnaCuP\nI6nHQ2r1/+W93bj98TX4+4f7sHV/A5a9vAW/+8d2WTcrLauzQ2K5Dpd8T6xWv15SF8xyEHIyHRg7\ntAhXXcAnx/3671+g5ks+FDFUJUTCLOF3NxwJO/M7VtTKHm+8bKz4XXFRJma1dfXhcBxDUeKFlDBh\nSDiOw/KFs3CNkFn8g29MTpiCUVJSkI3lC2dheuVAzJw6WDVuaxYSlaiTmWHH96+fLGuqMkrITvb5\nA2LMnimHnCwHzhrngs3G4XvXThKTmv75sfpQCwCYXhl0w2Y47OKFOd7BAYV5QXf0H97cgd4+H/76\nX34+873XTcLdXw8mz3Ech4GSGm12bH1r1hg8UH0WcrIcYrKcx+sPNpvg5NnCLR19sjreDIcNt14x\nAV85dxhGDtSe+c1waFjNavFmNrBgp5Db4PX5sVbIrK491CQmin2pGPARqXzMHwjgkx18nPmR754r\nG5nKXPkHT/AtLN/7/IjYt5zF9KWx/U+2Hsezb9XKavKZFZqMc1l57C+onipr7sOeZjL4/H4cre+Q\n5SgEAgE8/EIN/vfFTXG3g40VUsKEobluxmi88OClIaU5yeCOa86QWZVmYt7l45GTZU/qlK6sDDuy\nMu2ychs1hXnuhHJ8XXBNKktoRkim4ShLjq6+kLeiYs1KZuRmO8SJYQ2tPTK3ttoEr7u+VomKwQX4\nQZj2nVlC3/B9x1pkda73fXMKLhFCANsOyK1Kh92GKRWlqL5sbEyyOyVJYE//4CL8bJ6829w4ydxv\nRsVg/rGTjV1obu/Fnb9eKz5XXpQT8tuwYyPSJmePZEMxtNwpc6mzki22sXlNUjNul0xVY6zZfEw2\noIMnVPl+45LRsj7y8apnpRKWNgUBglb7U69tQ82u03j708NYvLwGd/56LX7w9Docb+jEwZNtovJV\n5jckC2P17yIIFZJlAVuJmWcNiZiZnSh6hUEJjHAzfNXKlgDeNcnqsZUXzSvPH4GJI4pDGqnEwqDS\nPAwpy0NLR6/MPa0WYhgxMF9m6Slx5vAX4S173WLMmlnEZ4114aOtJ1B7qAlFzky0dPTBVZSNM0aG\nxvSjobyYD11MqihFQV4mCvIysfg75+IXL24EAFXvzIiB/IbmvZojqrOslW79/NwMNLf3ymLxSlhW\nc35uRkgp1+yzh4q91KXTx4Bg/DvcvO0ld5yPhtYecdiCtJf3hZMGwZmTAY7jXcVa88TDIW0NOnJg\naItg6UZmx8FGsUsZwDdO+fn/fS6GKdTa6iYLsoQJgoibcBuk8qKckPKpcyaUiy5tACFDQrIy7Rg/\nvLjfmy6HwwaPzy/L0B2rYklqcbFQGlazqx7/Xn8YANAi1J9WjuIv0pkOOwIBvhHLY3dfqFl6Fw6O\n4/DcT2bil3cF8xOkMU61ZMiC3PCWWgBBi/fai0bhuotH4TKhjWykVpdsTODXqkJ7w7P2oWeMLJbF\nca+9OJilHK6Wf1Bpnuw5JltZYTaK87PEmeRA7E1SGLlZQW/Cz28N3VxNHFkiekqkLvKnJVUHbDpc\nInsSaEFKmCCIqBkgsXS0ejpfJmnJ+eS9Vbjn2kmyLOhom2bESmNrD/o8fix7eYv4WDyKfUBJrmgZ\nbRbqYa+pGgkAsNtsyHDYhAlWgYRlpUuRegrUPA7Kdp8zzhyEP/6YTyjbfqARf/+Q7+M9fGA+rqka\nhUIn745u7exFd683YpZwkTN8WEPpzpYO4HDmZIjDNCLBPlq6husuDlX8sZCb7cCT91bh2QWXhP29\nmdu8RwiT5GY5UJCXif9VdH3rb4VELJASJggiah7+zrnibVamFI5xw4tw6bQhuPGysWI8csKIoKXY\np9LoPxGMGSK3eq+M0J1NC2n5FyB3U9psHPz+APyB5IdMMjVGOJ5/xgB858qJqsojqMx5zbeq5iju\n/c06/OuT0KQ5NultSkVoOSBbonI4iXJsEcsKHz2kEEvuOB+PfPdcKGGlT+2STOzCCIo/WnirOvx3\nxTrxMVf9pcJGUdmYJZm5FUpICRMEETU5WQ4UCI0itCxhu82GW74yXpaharfZRCU5vh+x30jcp+hK\nFY1lFo6hilIm6dQxO8eJlnAydLA0NspiqeFgGct2my2kxp4lcI0dWiSL2X66I9hty+vz44u9bhw6\nycfr1TYVao8V5mWGJL3NnDoEd15zBn5194UYVJqH4QNC47NsIIzUgzBiQD4GluRGbGnbX9iGhLU2\nZUuSuv7/Z945mDo2dTPgKTGLIIiYuPXKCfjdP3bIBlHEwqJbQudMJ5rlC2cl5H2Ublmpi9gfCOCY\nuwMcgOL80Lr2/hLNPOnplQOwvvY0OruDWehjhxbhuotH4Z8fH8KD354mKvCcLAeW3TUdHd0e3Pfb\nj9HY1guP14cMhx2vfLAPa784HvGzbByHqy4YgdKCLFx85uCINfAXVA5Efm4mejrVy6EGluRiV12z\nrNd5cX4Wlt55gerrEwXbMARrq4XSKltwLVqDQhINKWGCIGLirLEu/OH+GYYbjp4MXEU5ePCms3Cy\nsQuDy/Jk1mBOlgM9fT4EAPTFmdEbicFleZh9zlCcWRHeKhta7gRqT8umUgHANVWjcNX0EbDbQhWl\nNFO8Zlc9unq8IQo4XLz+mzMrVB+PFebuVTY/STbKLPl6oYwt2vnmySCqs2jp0qXYtm0bOI7DokWL\nMGVK0N3z2Wef4amnnoLdbseMGTNw7733Jk1YgiCMQTooYMb44cWq7US/d+0kvLnuILp6vLKxhImC\n4zjcNHtcxNdcetYQbNnjxk1zQl+npoABPpZ959fOwHNvfSlmQzMevOksNHf0hmSuJ5rZ5wxN2vcW\nCZuNwy9vO0/scMa6wGU6bJgwvCiuudz9RfNMqqmpQV1dHVasWIEDBw5g0aJFWLFihfj8r371K7zw\nwgsYMGAAbr75Zlx++eUYMya0BytBEISVGDOkED+58SxdZcjOdESsdQ6HspvXlIpSXHn+cNXNRjLI\nznTgWyq9ulPBEJcTyxfOEmL5/GaD4zj89CbtyVrJQDPosH79esyePRsAUFFRgdbWVnR08LVUR48e\nRWFhIQYNGgSbzYZLLrkE69evT67EBEEQRL8YWJIrm5T1oxvOTJkCNgpGaQKkaQk3NDSgsrJSvF9S\nUgK32w2n0wm3242SkhLZc0ePHk2OpARBEETCuOe6yfB4/WFnQROpIebATn/HQBUX58KhUfMWKy5X\naAq8mbHSemgtxsRKawGstR5aizFJ1lo0lXB5eTkaGoJNyuvr6+FyuVSfO336NMrLy0PeQ0pznLNC\nw+Fy5cPtbk/oe+qJldZDazEmVloLYK310FqMSSLWEk6Ja8aEq6qqsGrVKgBAbW0tysvL4XTyBexD\nhw5FR0cHjh07Bq/XizVr1qCqqqpfghIEQRBEuqBpCU+bNg2VlZWorq4Gx3FYvHgxVq5cifz8fMyZ\nMwePPPIIHnjgAQDAVVddhVGj+tf/kyAIgiDShahiwgsWLJDdnzAhOHP13HPPlZUsEQRBEAQRHdQ7\nmiAIgiB0gpQwQRAEQegEKWGCIAiC0AlSwgRBEAShE6SECYIgCEInSAkTBEEQhE6QEiYIgiAIneAC\n/W0GTRAEQRBEXJAlTBAEQRA6QUqYIAiCIHSClDBBEARB6AQpYYIgCILQCVLCBEEQBKETpIQJgiAI\nQieiGmVoVJYuXYpt27aB4zgsWrQIU6ZM0VskVT7//HP88Ic/xNixYwEA48aNw+23346f/vSn8Pl8\ncLlc+PWvf43MzEy89dZbeOmll2Cz2fCtb30LN9xwAzweDxYuXIgTJ07Abrfj0UcfxbBhw1K+jr17\n9+Kee+7Bd77zHdx88804efJkv9ewe/duPPLIIwCA8ePH4xe/+IUua1m4cCFqa2tRVFQEALjtttsw\nc+ZMU6zl8ccfx+bNm+H1enHXXXdh8uTJpv1dlGtZvXq1KX+X7u5uLFy4EP+/vbsPaep74Dj+Xuqw\nlVKaGxVEDxQOCiuKUHt+GGRRMEgKhn9VxJhEYbhsWP+pZVEYURP9J4MeNCIoNHoQJJYwBtIiiAWB\nyahNy+XaVNb5/vFlQ7/f9XvA8HrgvP67h+P1fPhwPdd7hw4ODjI6OordbqewsFDKXtJl6erqkrKX\nieLxOPv378dut1NcXKxdN0JSvb294vjx40IIIQKBgCgvL9d4Rb/35s0bUVlZOWnM6XSKp0+fCiGE\nuHz5srhz546IRqPCYrGISCQiYrGY2Ldvn/j27Zt4+PChuHDhghBCiJ6eHnHy5MlpzxCNRoXNZhMu\nl0vcvn37j2Ww2Wyir69PCCHE6dOnRXd3tyZZqqurxcuXL/81b6Zn8Xg84ujRo0IIIYaGhsS2bduk\n7SVdFll7efLkiXC73UIIIT5//iwsFou0vaTLImsvE125ckVYrVbR0dGhaTfSPo72eDzs3r0bgBUr\nVjA8PMzIyIjGq/rf9fb2smvXLgB27NiBx+Ohr6+PNWvWkJOTQ3Z2NuvXr8fn8+HxeNizZw8AJSUl\n+Hy+aV+vXq+nubkZo9H4xzKMjY0xMDCQeoKRPIcWWdKRIcvGjRu5du0aALm5ucRiMWl7SZclkUj8\na54MWcrKyjh27BgAwWAQk8kkbS/psqQjQ5akjx8/EggE2L59O6DtzzJpN+FwOMz8+fNTx3l5eYRC\nIQ1X9J8FAgFOnDjBkSNHeP36NbFYDL1eD0B+fj6hUIhwOExeXl7qa5KZJo7PmjULnU7H2NjYtK4/\nMzOT7OzsSWNTzRAOh8nNzU3NTZ5DiywAbW1tVFRUcOrUKYaGhqTIkpGRgcFgAKC9vZ2tW7dK20u6\nLBkZGVL2knT48GGqqqqoqamRtpd0WUDO6yWpoaEBp9OZOtayG6nfCU8kZvBf31y6dCkOh4O9e/fS\n399PRUXFpDv83639/x3X0p/IoGWugwcPMm/ePMxmM263m+vXr7Nu3bpJc2ZylufPn9Pe3k5raysW\ni+W/rkOWLH6/X+pe7t69y/v37zlz5syk7y1jLxOz1NTUSNvLo0ePWLt27W8/VzPd3Uj7m7DRaCQc\nDqeOv379SkFBgYYr+j2TyURZWRk6nY4lS5awYMEChoeHicfjAHz58gWj0Zg2U3I8eVc1Pj6OECJ1\n16Ylg8EwpQwFBQV8//49NTd5Di0UFxdjNpsB2LlzJx8+fJAmS09PDzdv3qS5uZmcnBype/lnFll7\n8fv9BINBAMxmM4lEgjlz5kjZS7osq1atkrIXgO7ubl68eEF5eTkPHjzgxo0bml4z0m7CpaWldHV1\nAfDu3TuMRiNz587VeFXpPX78mJaWFgBCoRCDg4NYrdbU+p89e8aWLVsoKiri7du3RCIRotEoPp+P\nDRs2UFpaSmdnJwCvXr1i06ZNmmWZqKSkZEoZsrKyWL58OV6vd9I5tFBZWUl/fz/w9/uhlStXSpHl\nx48fXLx4kVu3bqU+qSprL+myyNqL1+ultbUV+PvV2c+fP6XtJV2W2tpaKXsBuHr1Kh0dHdy/f59D\nhw5ht9s17Ubq/6LU2NiI1+tFp9Nx/vx5CgsLtV5SWiMjI1RVVRGJRBgfH8fhcGA2m6murmZ0dJRF\nixZRV1dHVlYWnZ2dtLS0oNPpsNlsHDhwgEQigcvl4tOnT+j1eurr61m4cOG0ZvD7/TQ0NDAwMEBm\nZiYmk4nGxkacTueUMgQCAWpra/n16xdFRUWcPXtWkyw2mw23283s2bMxGAzU1dWRn58/47Pcu3eP\npqYmli1blhqrr6/H5XJJ10u6LFarlba2Nul6icfjnDt3jmAwSDwex+FwsHr16ilf8zMli8Fg4NKl\nS9L18k9NTU0sXryYzZs3a9aN1JuwoiiKoshM2sfRiqIoiiI7tQkriqIoikbUJqwoiqIoGlGbsKIo\niqJoRG3CiqIoiqIRtQkriqIoikbUJqwoiqIoGlGbsKIoiqJo5C+gW7GTSOY1WwAAAABJRU5ErkJg\ngg==\n",
            "text/plain": [
              "<Figure size 576x396 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "lNjWBlNcrWsT",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 364
        },
        "outputId": "f2dd3c55-48b2-4eec-b06d-bfff583d4e21"
      },
      "cell_type": "code",
      "source": [
        "plt.plot(running_mean(corrects,int(nb_train/100)))"
      ],
      "execution_count": 27,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f74a489d5f8>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 27
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nceYnJUCd/mMfkKIAAAAASUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 576x396 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "9jnDmqGJrWsW",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 364
        },
        "outputId": "534faed2-76f8-42be-9b57-64cbf0a8efce"
      },
      "cell_type": "code",
      "source": [
        "plt.plot(np.cumsum(labels))"
      ],
      "execution_count": 28,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f74a4551908>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 28
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nAd4adO0cuJlWAAAAAElFTkSuQmCC\n",
            "text/plain": [
              "<Figure size 576x396 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "WdyU7s3vrWsX",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "nb_test = 1000\n",
        "corrects_test =[]\n",
        "labels_test = []\n",
        "for k in range(nb_test):\n",
        "    x,l = generator.generate_input(len_r=seq_max_len,true_parent=True)\n",
        "    y = RNN(x)\n",
        "    _,preds = torch.max(y.data,1)\n",
        "    corrects_test.append(preds.item() == l.data.item())\n",
        "    labels_test.append(l.data)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "S219SZHNrWsa",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "fe3508f4-8752-4fe4-9b00-198d00cf0dfe"
      },
      "cell_type": "code",
      "source": [
        "np.sum(corrects_test)/nb_test"
      ],
      "execution_count": 30,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.986"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 30
        }
      ]
    },
    {
      "metadata": {
        "id": "wv0nnF79rWse",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "nb_test = 1000\n",
        "corrects_test =[]\n",
        "labels_test = []\n",
        "for k in range(nb_test):\n",
        "    x,l = generator.generate_input(len_r=seq_max_len, hard_false = True)\n",
        "    y = RNN(x)\n",
        "    _,preds = torch.max(y.data,1)\n",
        "    corrects_test.append(preds.item() == l.data.item())\n",
        "    labels_test.append(l.data)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "8kCzxggMrWsg",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "9b04093d-91f2-4811-bfd1-84133fb8c372"
      },
      "cell_type": "code",
      "source": [
        "np.sum(corrects_test)/nb_test"
      ],
      "execution_count": 32,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.848"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 32
        }
      ]
    },
    {
      "metadata": {
        "id": "A6AtJasprWsi",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "nb_test = 1000\n",
        "correctsh_test =[]\n",
        "labelsh_test = []\n",
        "for k in range(nb_test):\n",
        "    x,l = generator.generate_input_hard()\n",
        "    y = RNN(x)\n",
        "    _,preds = torch.max(y.data,1)\n",
        "    correctsh_test.append(preds.item() == l.data.item())\n",
        "    labelsh_test.append(l.data)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "GQyeOweGrWsk",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "06f26035-44ba-418a-845f-71c64039240a"
      },
      "cell_type": "code",
      "source": [
        "np.sum(correctsh_test)/nb_test"
      ],
      "execution_count": 34,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.53"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 34
        }
      ]
    },
    {
      "metadata": {
        "id": "sbsG29EKrWsm",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "nb_test = 1000\n",
        "correctsh_test =[]\n",
        "labelsh_test = []\n",
        "for k in range(nb_test):\n",
        "    x,l = generator.generate_input_hard(true_parent=True)\n",
        "    y = RNN(x)\n",
        "    _,preds = torch.max(y.data,1)\n",
        "    correctsh_test.append(preds.item() == l.data.item())\n",
        "    labelsh_test.append(l.data)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "5oVty4x9rWso",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "d9554776-e979-44c8-90d8-b4a38efe9abc"
      },
      "cell_type": "code",
      "source": [
        "np.sum(correctsh_test)/nb_test"
      ],
      "execution_count": 36,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.973"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 36
        }
      ]
    },
    {
      "metadata": {
        "id": "j_BKTqbSrWsp",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# RNN with Gating "
      ]
    },
    {
      "metadata": {
        "id": "SzeIUDuHrWsq",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "class RecNetGating(nn.Module):\n",
        "    def __init__(self, dim_input=10, dim_recurrent=50, dim_output=2):\n",
        "        super(RecNetGating, self).__init__()\n",
        "        self.fc_x2h = nn.Linear(dim_input, dim_recurrent)\n",
        "        self.fc_h2h = nn.Linear(dim_recurrent, dim_recurrent, bias = False)\n",
        "        self.fc_x2z = nn.Linear(dim_input, dim_recurrent)\n",
        "        self.fc_h2z = nn.Linear(dim_recurrent,dim_recurrent, bias = False)\n",
        "        self.fc_h2y = nn.Linear(dim_recurrent, dim_output)\n",
        "        \n",
        "    def forward(self, x):\n",
        "        h = x.new_zeros(1, self.fc_h2y.weight.size(1))\n",
        "        for t in range(x.size(0)):\n",
        "            z = torch.sigmoid(self.fc_x2z(x[t,:])+self.fc_h2z(h))\n",
        "            hb = torch.relu(self.fc_x2h(x[t,:]) + self.fc_h2h(h))\n",
        "            h = z * h + (1-z) * hb   \n",
        "        return self.fc_h2y(h)    \n",
        "    \n",
        "RNNG = gpu(RecNetGating(dim_input = nb_symbol))"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "TJEecKPGrWss",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "eba0ce71-4618-4a8e-aab8-9a845ea86906"
      },
      "cell_type": "code",
      "source": [
        "optimizerG = torch.optim.Adam(RNNG.parameters(),lr=1e-3)\n",
        "loss_tG = []\n",
        "correctsG =[]\n",
        "labelsG = []\n",
        "start = time.time()\n",
        "for k in range(nb_train):\n",
        "    x,l = generator.generate_input(hard_false = False)\n",
        "    y = RNNG(x)\n",
        "    loss = cross_entropy(y,l)\n",
        "    _,preds = torch.max(y.data,1)\n",
        "    correctsG.append(preds.item() == l.data.item())\n",
        "    optimizerG.zero_grad()\n",
        "    loss.backward()\n",
        "    optimizerG.step()\n",
        "    loss_tG.append(loss)\n",
        "    labelsG.append(l.item())\n",
        "print(time.time() - start)"
      ],
      "execution_count": 38,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "727.107631444931\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "n4ozNgShrWsx",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 364
        },
        "outputId": "49ac31a1-44e1-46e9-9904-bc9a491a1a49"
      },
      "cell_type": "code",
      "source": [
        "plt.plot(running_mean(loss_tG,int(nb_train/50)))\n",
        "plt.plot(running_mean(loss_t,int(nb_train/50)))"
      ],
      "execution_count": 39,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f74a0ee0780>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 39
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 576x396 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "6UDOKWvgrWs0",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 364
        },
        "outputId": "96279f0b-b239-4b9a-abb7-652810753097"
      },
      "cell_type": "code",
      "source": [
        "plt.plot(running_mean(correctsG,int(nb_train/50)))\n",
        "plt.plot(running_mean(corrects,int(nb_train/50)))"
      ],
      "execution_count": 40,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f748e0a5be0>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 40
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAekAAAFKCAYAAAA5RqfXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzsnXdgW9X5sB9tL3nvPTKcOHvhTEgI\nYZedUUYpuz/GR1sKLS2FlkKBQksZBUqhZZSSUkYpI8xAQvZ2tmM73ntbsq39/XGta8mSLDlxYiU+\nz193nHvvORr3PeedCofD4UAgEAgEAkHQoRzpDggEAoFAIPCOENICgUAgEAQpQkgLBAKBQBCkCCEt\nEAgEAkGQIoS0QCAQCARBihDSAoFAIBAEKeqR7oCTpqauYb1fTEwYbW3dw3rPkUSMJ3g5ncYCYjzB\nzuk0ntNpLDD08SQk6P22OW1X0mq1aqS7MKyI8QQvp9NYQIwn2DmdxnM6jQVOzHhOWyEtEAgEAsGp\njhDSAoFAIBAEKUJICwQCgUAQpAghLRAIBAJBkCKEtEAgEAgEQYoQ0gKBQCAQBClCSAsEAoFAEKQI\nIS0QCAQCQZASkJAuLi5m6dKlvPnmmx7nNm7cyJVXXsmKFSt4/vnn5eOPPvooK1asYOXKlRQVFQ1f\njwUCgUAgGCX4TQva3d3Nww8/zNy5c72e/93vfscrr7xCUlIS11xzDeeeey6tra1UVFSwevVqSktL\nuf/++1m9evWwd14gEAgEgtMZvytprVbLyy+/TGJiose5qqoqoqKiSElJQalUcuaZZ7Jp0yY2bdrE\n0qVLAcjLy6OjowODwTD8vRcIBALBKU11k4FPN1dQ0yRkhDf8rqTVajVqtfdmTU1NxMbGyvuxsbFU\nVVXR1tZGQUGB2/GmpiYiIiJ8PicmJmzY854Gkrz8VEKMJ3gZOBabzU5ZbQe5adGolIoR6tWxczp9\nN3D6jKeprYedhxqZPCYejfrUdCmy2ewcqmjDZLFR1drD658dprS6g10lzVx7wUSyUyKJjQwZ6W4e\nM8P9WzspVbAcDoffNsNdCSUhQT/slbVGEjGe4GXgWAw9Fr7cXsWHG8r5wXnjOXNa2gj2buicrO+m\nx2QlRKtCoRieSYzD4cBmd6BWuQuv0HAdTc0GIkI1WKw2esw2IkI0KE/A5Mlqs2OzO9ColMN6f6vN\nTrfJyt3PfAfARfOyuXxR7rDd3xWTzYxa0b9gUimPb/FktdndvpOvdlTzzy+KPdqVVHfw4F83EaPX\n8ditc4c8CbE7HBh6LACEaFRoNf39NvZapN+GUklYyIkTe0P97wQi0I+rt4mJiTQ3N8v7DQ0NJCYm\notFo3I43NjaSkJBwPI8SCE4J3ltXykcbK+T9L7dXn3JC+mSw/2grT63eTWFBErdcXOD/ggB48b/7\nKavt4LHb5qJSSi/4tTureeNzSSCcX5jJut21GHutTMiK4Werpg/Lc504HA5+/cpW6lu7iYrQ8qc7\nFgzbfR94ZSsNrf0Lmc+3Vp4QId3c08LDm58kJiQaB6AAHiy895gnUp1GM3c/+x3LZmew8uyxdBjN\nsoBePCON9KRIjEYTCgU4HPDt7lpaOnu594WNPH7bXDdB648/v1PE3rIWAEK0Kn5/61yiwrUek4Lb\nLilgzoSkYxrPSHBcQjo9PR2DwUB1dTXJycmsXbuWJ598kra2Np599llWrlzJ/v37SUxMHFTVLRCc\nDnQYTLKATooJpaGth5zUyBHuVT81TQb+8PZuOo1mZo1P4P8umzxo25c+PECH0cRF87I5Z1bGsPZl\nfVEtAJv3N9BhMPOTFVNlwTpUikqbefPzYpo7egG4+YlviNHrAGkF5eTTzZXydmXD8GoKPtpYztpd\nNbR1mQCkMb30BSH5OzkvbxGL0vsdb3cdaeLTzZVMzo3l/fVHAfjZymlMyI71eu+jdV00tHYTo9fJ\n9zdb7fz0+Q1yG7VKwfXn5Xu9R3FbKf88+A5Wh41IrZ67pt9CqNpTndxrNfHgpscBaOppkY/fsfY+\nZiZO5YZJVw/1Y+GzrdJn/vm2KrYdasRitQOS8F919lhSkqPcVp7pCRE8824RHUYzj7+1iwd+MCug\n59gdDvaWtRCmUxOj11HTbOS3/9jGDy/Ip6Lvux6TFkVJTQcv/nc///3uKHUt3RTkxPLjq6Z61XpY\nrDb+8PZuWjp6mTY2nmuXjR/y+IcDhcOPLnrfvn08/vjj1NTUoFarSUpKYsmSJaSnp3POOeewbds2\nnnzySQCWLVvGjTfeCMCTTz7J9u3bUSgUPPjgg+Tn5w/akeFWr51O6lQInvF8uOEo1Y0GLluUS0pc\n+DHfJ1jGczw0tHXz7rdlKJVKDle0otOoaGzvITxEzW9vPEN+ib5y3+JhU+l6Y29ZC0UlLaxaOnZQ\nFes/Py/mq53V8r5Oo2J2fiLXLBvH3rIWNuytx2q3o9Wo2Xm40e3a4xmD2WLjzb7V7DXLxtFmMPGL\nlza7tZkzIZHbLpl0TPe//U/f0mOyuR1LjA6VtzNTItl+sAEUdkKmrUWhsWDv1nNW1hxWTD7X6z23\nHWqkvsXIxfNz5GNtXSY+3HCUSxbkEB2hk483tHbzi79uRqlQYHd5nariatDm7QXg+SVPANJncdtT\n33p95qs/X+L1+BNv7eRQZTuLpqZy7bnjeOHDA1TX9/93rHY7rZ2S8H727oUUlbSw7ZD0/aUlhLNT\n/Tbtpg60Ki1mm5kQazxTEyZQ3L2X7KhMUsNS+a50P2a7iR5No9c+ADw87xfEhsT4PO+kqGk/xW2l\nTNTM58nVe+Tjzu9Eo1bywwsmkJsa6fU9sLeshT/9W7pu9gIDisgW4kPjuGLMxW6/wfrWbt77thSr\nzUFaQjgfb6ogKTaMmy+ayMsfHaChtZvE6FDMVhvtBjNP3DaXe1/c5NHf399aSFJMGAA2u523vjhC\nh9HMuPQo3v66BACVUsHk3DjmTEiksCDZ59hHRN09adIk3njjDZ/nZ8+e7TW86p577vH7cEHw4nA4\nWF9UR0J0KBOypD/m7iPNfNA387c74NbvTeTrnTVMyIohM+n0cMzxRo/Jyje7a5iSG0daQr9G6K0v\njsjqNScqpYK7rpyCPkwjH2vrMnG0rhOlUsH0scNv9nG+0M6clkp6om+NlcVmd9s3WWx8t7cOu8PB\nwYo2eZXmjeKqdsZnen9BN7R2c7Su0+fLq7Smg+/21qHQdVOr2kV5uQKQ1I3XnTee17/aw46W7Tz9\njoX5k9NQAA4gNyWSDfvq0KpVzMpPYNO+enrMNhZOSWFPSQu9Zis2u0MW0HddOYXn3t3LxJwYfrJ8\nmvz8hAQ9r/1vH/89+j8UGmllrQzrYl3TV1jXJRCuiKastpNDle08cvMZhOrUvPDBvr7PzIFapWD+\npBQefXMHbV0mvt1dy2O3FrKzuJnIcA27jzSjjGoiOtbKE8tXoVRIGoEfffpruQ9PffNvUpXjMHZq\nfX7Ghh4LEaEat2MdRjOHKtsBOHdOBiqlkt/cPNdNEHT3Wrnj6XUAHKpo4+PNFdQ2GwHYXdJE6JwO\nAM7QL2V9+yf0qpvZ0rYegLbGdnZRBCpAJamczSXTWZA5jS3V+1Dk7ACFA4XCwev73+Humbdgs9v5\nekcNvWYrsZEhJMaEkpEYwdpdNZjMNr6wvAbAzspwQEGYTs2Tt88jRBuY4nZybhyXLczh/fVl7DN/\nB32W0+mxM8iLSweg12zlkde3Y+y19o1TajQ2LYrc1EgevH4WP39pM43tPQDER4UQrddx15VTePbd\nIlyXph9tKCcuKoRWRw0l5h20dIClbAo7i5tQ6ltQ6tuwNaexu8RBeIh6UCF9IjgpjmOC46OyoYvy\nJiMp0SHohmCjOVZ6TFa2HWrkH58eAuD/XTkFhULBM+/2J6WpbOji1U8OseVAAwDP/L+FHi+Y0wGb\n3c4rHx9kZ3ETn2+r4sdXTcVis9PeZZYF9N0rp/P027vQaVX8+c4Fsh1t0dRU1u2pZcfhJv711REA\n/nbfYpRDWJE6HA6O1nWRmRTh5nxjstg4VNGGzd7/tukxW33ex2qzs7O4CYDHbi3kk82VrNsjqZw3\n7qv3es09K6exo7iJtTtr+HBDOT/zIaR/8VdpVdxuMJMYE0p1o4HZExJJiQunobWbAxVtAGjH7KJO\n24VuHJjLJnHnBQsID7MQP60Io6KV/WVKij5ok+87KTeWfWWtAPx7bYl8fM2WSgYyJS+OaWPi+ctP\nFqH24nC0aEY8H3d7Xreufh2Wsin9Y3lpM1ctzpN2VGY+KdoFCgcl9enSJEZhR6lv5ffvfkNXbw92\nQzRhoQp0k3fQA6ytyiAmJJpaQx1KXa983zL7dkp69mE6OB/QcP35+czOT0SjVvLH1bs5VNnOh98d\nZcqYOPIzY+Tv2mlLTY0PJyFGx4GWw5g6uskNGUOUTpoYh4WopcnOmsOsL6qjttlIXGQIs/MT+Wzv\nfgCSQ1P44gs7qpQxaNL7P0sn1uZUrp5wGd/sqqO8rZt1bXVAHLQsRRHeSUjBZo50lNBq7OKbHU18\ntLHc7fqL5mbxyd5dOGwaQvqsKAZzNyhC+b9rk1Gq3CeIDd1NmG1mEhK8a1gvnp/D7vpDuP4yX/5y\nC48ulyZxb315RBbQrpw9UxLiIVo1T/7fPFm9rtUoUSmVTBsTzws/ORMHsGl/Pa+vOcyGffUotD2E\nTPsWlKCOB2tNHgpdD9qxO1Go7EyZrObC7HPJjk712t8TiRDSQY6x18JDf98GwCULcrhkQY6fK44N\nk9mG3eEgVKfmvW/L3NSif/6PZ8a45o5e2QYI8OrHB7nryike7QbS3WtFox6akGrrMhEWog54Jn68\n2B0OWjt7iQjVUFTaIgu3DoNZ/i6chIeoWTIrg+hQNfowrZujS3SEtGpyCmiQPudQXeDj2HqwkZc+\n3M/cgiRuvGiiLODfX1fG59uq3NruKm4mLy3K6yTg2921sudrVISOq88Zy7xJydjsDpwa8oToUJo7\nelFr1WgUkJEYQV5qFGt31lDf57TU1W3GanNgs9vRqlVuEwdXQfrBd0f5232LeeSNHRh6LCh0RpTh\n/as/be4+XjokrVbpe74quglbc7rcximgfXHVWXl8vq2KDqNZ/qx9ORp9Uv6F9AyFikvyzidSEc8/\njvyDnAwtF80p4I9vS8LM7nDIq6/UmcW0If0PSsx7QLEIVWIV2qxDmAEd0mTDEtYlv0jfK/nI49mX\npq7kg9q3Uep6mbCwnCuzVpGVrJe/p2VzMjlU2c6XO6r5ckc11ywbx9yCZDqNZrYfktT015yfzbrq\njbzrcn+nCh2Q1e9FpdLEUaNWcvmZuayz/R0HUN9Th8MxlfDOfK7KXkhHdy/vflMGGhNYtdiNUSy4\nKpMZY1K568/rXXqvxGGMwm6MRBneyevfbqeoyMbAFBsfF+0hpGCr27He0FqiYtQ8X/Q581PncHHu\neei1ETgcDn67+Q8APJPwG1T0mya6Ld2EqEPotvZQH7PW7X4txi72lrZgtTn4rqgOgOvOHc/n26qo\nb+0mJS6MrOR+jZ5apfTw9AfpN9Jh6mLupARSE0KwWh28Wv4cPS4WE92kjShU/QcOth3iYNshnj7r\nUTSKkys2hZAOcspdbE+DqSOPB6vNzs9e2EiPycpTd8ynwzj4c359/SwOVbS7vZR3lzTjcDgGtVu2\ndvZy7wubSIwJ5eVfnhNQ3z7aVMH768oAeP7Hi4Yk4I6Vf3x6iO+K6ggPUZObGgVAXKSOuKhQiqva\n3doumpqKQqHwqu5fOiuDyHAtVpuDt/sE9WtrDg3J9upc7W7a34BaJdny2rpMsoC+dEEORWUtlNV2\nsmZrJW0GE7d+z9Nb+ovtUvsrzsyVtTHjMqI92sVGhrjZ1XRaqW1bl4lDFW088a9dPvs6JS+Olo5e\navpUrc/8pwhDj4WUuDBSJ7VxoMf7dXEhMbT0tpEVF0dBco6slteHaUmMCeWZvkmiWqVkxrh4spL1\nRIRqmFuQTEFOLMVV7cwc75lsyZVui/TwH8+4jZyoLOwOO68dUVDVU84bVS9y++W38vx7BwBYu7NG\nGjP9E1WF1kTo7C887huaexgb0uSnMHkWafoU3j3yP/n8DQXfZ2bSND6ofRuA8u5SclLcnQmn5MZx\n44UTqGjo4svt1bz5ebFsw9eO24EquplnD3s+u6G7iaQwyXwyKSeWVUvH8q8vpd/ZxfOzsWPDoZL6\n5rBIk5jpYxKZlyutXt/5qF9rMWdCIkqFgohQDT9bOY31e+vITo6ku9dCbGQI/9x/CGV4J0dCPkU7\nLh5zsbtDl0Lby0A0aaWY+7Y31G5lQ+1W7px2MzEh/b+7uz55kN/M/TnxobHUGRv43ZanOCN5JoUp\nMz3up80+wAv/zcJskbRH4zKiWTQtlZyUSIqr2pk2Nt7jGm9sqdvB6we9Z8BUocaGVRbQi9LmkRAW\nx/b63VR0VfHXote4fdqNAT1nuBBCOsgpr+uUt9ftqeWiuVnEuzjFDAfGXqu8yvp4YwXmPhXRz6+e\nwXdFdcRHhWC12zF0W7hoXjaxkSFkJ0eiUiro7DbLqzRDjwV9mG+bW2NbD3aHg/rWbnYcaiAzLmzQ\nfnX3WmQBDXDfmmdYXJDPZWMuGIZRe8dqs/NdUR2quBqsyeXsPVgIqPjFNTPpMVl54BVptXDNsnHU\nNhs5vzDL570iQjUsmSGtDMemR/Hwa9vZerCR2MgSli8e4/O6DXvr+GJ7FT+/egYHK/pfpOuL6rji\nzDzZIS0yXMvF87OZNzmZe1+QHGK2HGjwENKGHguNbZKQOv8M3/31RUpcGHUt3fzpnT0e5xRhnWjH\n7gSHkpUL7uKd0vfoaKrFuG+mvKpLjg2jwSEJjyvHfo//HPnQ7R4/LLiaJ3c8R7OyjO8tuN7jGXdc\nPpmD5W1ctijXI8Y1M0nv1x/CarOyrUGaXDiFmlKh5Kpxl/B15Tqae1vJywrlgR/M4uud1ZRrvqNV\n7akSBojWRpMQFotOpWNfy0FZQANcO3E5ANMSJrG+ZjPnZZ+NTiX9H26Z/AP+uley1doddtluDaBU\nKpg/OYWCsRGsN/0LlDbMJdNJiYqmLboZXxxsKZbHo1YpOWdWBg67g64eC2dMTKLWUCe3Ne2XvMsX\nz+jXVNz3/el8uKGcuMgQVpzd/3uckB3r4SUeoj+Pj0q+pk1ZDtHNnFeYSmK0nr2lLXT2mKlN+cxn\nPwHGRedR3F7K6wdW02HudDvX3NNCfGgsG2q2ALClfgdb6nfI5xND42nskT4He3wp1OWSkxLJ7ZdN\nQqlQkJWsd1tB+6PO2OD1+I+m/JCCuHzuWHsfAEsyFvK93PPQqDSMicrh25qNTEs4NufG40EI6SBn\nw153e2F5fddxCenf/mMb5fVdhOpUTM2LJzEm1M0jdX1RLb1maRY5Ji3K62rLyTmzpbCcygYDe8ta\nuPuZ73jUxVNyIGUuE46HXt7MZYtyuXhets/7r9nqqs51YNPX82Vl/bAJaYfDwd3PfkdXt4VLF+Yw\nJS+O3/5jO4DslauMbCbcnE6MXkdsZAhLZ6Vjtdpl4RsIB1uKee7g3zhjzkVs2WplT0mzTyFtsdp4\n5eODALzy0UGP83c/+528/ZPlU1EoFMQNyM50w2Nfk58ZjVajYvniMRyu7Bf0x5JgY06hg8+b1qDu\njUV7ZB7hOg0z8xP4dHMlmsyDsu11W/M2DrUVgxpCpn2LtSEDS8VELpibxesV0nMXpBWyOGMBNYY6\n3j3yP1aOv4z40DgAQtQ6r8+fMS6BGeOO3eHuraIP5O1Qdf9/58z0edQY6miu3cLf9r5JpDaC5Pwk\ndla4C+iU8GRaugyo0HLVuAuZligZXW//+l65zU2TrpW3Y0NiuCTvfLd7TE0oYHL8RPY2H6Db0sOH\nZWto7mlhVtI05qXOAaC4/QjKUEkLEZlXQnRcFG3G/ntE66JIDU/GaDdS0V6N3eHu0Q6S6tyJwSJd\nPD6igLbYROZNSibDxbFwfGaMTz+DgczJzWNObh6PbPkjtcZ6pk3VkBeVTJVuA1EOB7X10jvkijEX\nUdpRzuVjLua1A//CarexKv9yYkKiuW/9bzwENIDFLk10NtRu8TgXo4vmmgnLaepu5Y1Db6NNLSc/\ndBZ3Xj4ZzTFmqNzR6D7ZVClUXDXuEibFTwDgvKwlqJUazs85W26TGZnOtZHLj+l5x4sQ0kFMW5dJ\ntgU6qWk2EljkoCfdvVZZfd5jsrH5gOeM0imgIfAXemZSBHvLWnAA//66hDuv8LRN7yxuYsfhJrdj\n768r48K5WT4dqZzOKfFRIWRnatjfd/yDkk+4MOccNCp3RzWHw8E3u2uZkBVDfFQIf3l/H6nx4Vx5\nVh5HqtvZVdyMPlxDmE7N1DHxPPrGDrq6LSgj2vi4djfrG6NAkQWO/lWOQmnn+vPzZTX+95eOC+gz\nceW5PX8DoIiPSIi+lLqWbio7q1lbuoOt34Vx/TlTmZ0vqWuP1vWbN5weq3lpkVitDjneE6SEDM4V\npEKhYPGMNFlNC8gewb0m6zGbCOwOOy8V/YN9LZIDoTWklUdum0q0TjIBTJmo45l9a+T2a8q/crte\nnVTFzHHJ5KZE0nyohcSweDRKqS9pESncNf0WuW1qeDK1xnq21+9iVvJ0HA4H31ZvJCk8gQmxQ//M\nnXRbevioWOrXDyau9DDH5EZlsbF2K0c7pfj2Pc375XPh6jB+MeduN/WsKxkRqVQZJHPE9ETfMedO\nzDZJ+fuvw++xu0maBB5uK6He2Mj81DluanKtvptOW/9/ceX4y1iYJq2Gd3fs5uUdb9HQ7f5/GkhL\nj2TTL0jO4ew5s/32LxDyY8dSa6zn2d0vk6lPp7yz3xlvdtIMlmQuYgmLAPjJzP8b9F4zE6eyo3EP\nW+t3cqS9DHOfsNZrI+i19nL71JsYGyMlbMmLzuaNQ2/jUJndPPeHit1hp7VXmrQ+tehhrxPDi/PO\nO+b7nwiEkA5iXviv5FgzNj2Ky84ayxNvbqfdMHS7tMlio6y2ky0HvHvxeuOKMwPPZrRgcgofb5Je\nctVekuQbeiw8995er9d2Gs1uMadOXMP3z5mdwdaGfqeULyq/ISksgbmp7i+e0ppO3vjsMCB9Zkeq\nO9hd0szZM9P5/Zs73dqG6UrpNkneobqJ0gy+m3o02V04elxUZyqrhw3xeDDqi6ErhT/v+iu9tl4s\nMbm88IGKGfeexeb9DXLyB0D23J4xNoGzpqdx+5/WgdKKOrWMCqWR3J558ir02mXjueaccbz04X62\nHmzkx8un8vQ7eyiu7pDv581WPRg7G/bIAtpJdVctVrsNk83Eq4df9XuPPR3bWFsthayYbRaf7RJC\n46g11vPawdVkR2VS2VXDO0f+C8Bzix8/5hjt3U3SfyhGF82c5Bke5wtTZjEneQYVndU8ueM5+fgP\nJ65iZtK0QZ+bHzuOKkMtl+YFptmZklDA4bYSWUA7+apqHV9VrXM7ZrAYMViMaJRqHp3/AGGafg3A\n2LhsACq7avCF2WZmfa3kde/Af1rmQBkTncvXVeuxO+xuAhrgnKwzB712XMwYittK+P2CB9BrIlhX\ns4kdjXvY2djvmLoobS5XjbsEwM0kABAXEktLbytmmxmtyrdZbTDeO9LveOdLcxNsCCEdpDS191DS\n94JdtXQsacnS6sVksdHda8FicxAV7v5DtVjtNLX3kBrvnmTEmycwwLLZGUzJi0OlVBCqU9PS2cuz\n70ovkEk5cQH3NSk2jCdum8t9L22iq9uC3eGg12QlLESD3eEY4C3qTo/J6lVIH3KxxWbnmfmg010V\ntrb6OwpTZrm9RKtcJghHXITTz1/yTGDgFNAo3FWG6oRat/1LFmV47d+x4kg5gDasgV6bpCJWhkh9\n/mRzpZv9vbAgiXNmZWCydxMXo8GhNHPfDWN5Zt+zAHxTU8Y3NevdPHwVCgW3XFzAyrPHEh2h4/Hb\n5tLVLQlGrVrp8bsYDJvdxt4WT3X73uYDvFD0d7djP57xI/608wV5/9H5v8Jit/BB6afsaiySV4gJ\nob5/U9cXfJ/fbH6CdlOHnPXKSZWhhkx94OYFV4x9Kt9LBzGRKBVKcqIyebDwZ3SaDSgVCnIis/xO\nDL6Xdx5zkmeQHD6405qTRWlzGROVg81hQ6VQ8fyeV+g0eya+uHPazXJGsChdpJuABsiMltLMdpg6\nPK518m31Rqr6hHjWMX523pgY1591K0ITjsFiZHH6As5Mn09C2ODvjDum3ojR2k2kVpoE50b1+0ek\nhidz7YTlpEWkeAhnJ7Eh0bT0tvJt9UbOyTrLb1/tDjud5i6sdhtxITF0WQysrf7O73XBhhDSQYqr\nkArVqmUv2837G9i8X1JTP3pLIcmx/fbfW5/8BoAfXTpJVp8CbgI6VKemp09AjU2PZqKLg0h6YgQ/\nunQSKqWCzKShpXGNjw4lNT6cmiYjT729m4MVbfzpjvluoVzS81Xcu2oG//6mlIPlrRwob/Oauayh\nrd8V+DsXW5XDokWhMVNjqOOfh/7DNROuko47HPIqeiDOWMkfnp/P3z/tXxnqwzTkT7Gyz+71MgCa\nzIFrH7xhs3vaDVVR/QlQFGGSkHYV0IDkWaut4y97XhnS85RKhTypiI8KJT7q2PwX7vrmF/J2lFbP\nbVN+yOPbn3H7LgAuzDmHuAFZqKJ0kubh6vwrKYjL558H38GBg7gQ72kvAbQqDWOic9jesNvjXKep\nC44xV87eZsljO1Lr//ecGJZAYljgtm+lQklqROCJLZQKJen6/jjbX57xE+5b/xu3NjdPupbxMWMG\nnSAoFco+Qea7javt19UOf7xolGp+PONHdJq7mBSXT2lHOfkxYwPSdKiUKllAA6RHpHLP/FupaW5i\nTHSu38nOGckzOdJexgeln3Bm+jy/q+mX975BUZ/54roJK3jHxWHxtinX++1vsHBq1jo7TVmzpZJ7\n/rKBdoNJDkOJiwwhKTbMa/znr1/Z4ub05eSFD/Zx59PraGjr5s6n3dVohQVJ3HZJARcUZjEpx/2l\n2W5q5/3ml3il+g/8dssf6LX6V63XGOq4/et7uf3re2nNeRdlTL3skfzj5za4FZsA+MnyaWQl61nc\nlwt6T4mn9+rXO6t5vU/gLp52px31AAAgAElEQVSe5qYmtdT0O1xtquuPWe40mhlI3oC82QunpnLd\nedJKYNHUVB65uZCJY6SX9wU57iFhMxIlu3pbr3vI1VBxzYGcHZnp2cDWP09W6lsJmfEVYRmVLJ2Z\nzr8OvevWNEbn24nvRPJA4c/chAuAWqnmvKwlLMta7Gaz1Wv6hWGoOoS5KbP40dQbOCt9PufnLB30\nObOT3AteOD2j67t9p6ocDKvdSmlHOQCZ+uHNPT4cRGjCuX7iKhanL2BR2lxumnQt0xInByTwUsOT\n6TB38uq+f3o9X9ImTfpmJ80Y0kQiEMZE5zAjcQpalZYJseOO2RShUCiYkz6NBWmFAWkjXCdQrv8r\nXxS5+Be8fnA1Pdb+if+kuAlD7O3IIVbSQYQz7vgnz/Unzr/2XMlpxls2L6vNwU2PryU3NZLz5rgL\nAGOv1SM/MsD0MfFMyo3zqALTZTbwwMbfy/uN3c38dN0DPDL/l7Kj0ED+V7qGNRVfux3TpJZhanN/\nKWQmRhAbGcINF06Qx1E4KZm//GcP+462YrPbaW7v5fXPDpOWEM6X2/tX33lpkazplEJJ7MZIbK1J\n2CJbUMVK2oQX1mzCYghn4ZQUQFqpj8+I4caLJhCmU/PamkOs21PHpX1JYM6alkaHvojPK17lKvVD\nFLdJn3l2ZCbnZJ7FF5Xf8IOJK5kcP5GdjUVeCxEEislm5uEtT8r7P5t1B7WGeh7Z+kcAlLYQCO/k\nwetn8c+v91OTLNndHSkHeGnv32kzuU8QMvRp8rFMfRqVXTV+Y9OPBVd/gAuyl3r9DJ4+8xG35/5i\n9t18dPQzVoy7zKNtQdx4CuL8FycoiOvPPjUxbjwzEqbw5qF32FS7jaWZg9s7vdFh6l9NBqv9cXby\ndGYnD70a18K0Qv51+D0OtHqWfARkh7ZrJlzpU318qpHhMlHssXrGZQN8XPY5oZpQ5qb4dpT78Ywf\nndBc+sPN6fHtnQY445RdiYrQkt6XK1qhULipsBdN7f/BltV2umW18kV+ZjSTcj3tRgdbit0EtCtv\nH37Pbb+pu4X/la6h29LtIaABNPYwtGopZnNWfiKTcmJ56IY53HXlFLeJhqud92B5G9/uruVgRZub\ngI4I1VCQLTmLANySfytYdZhL+l9q+7Tvs7usnmf7HNPmT07hriunEB6iQaFQcP35E3j150v4nkum\nts8rpExG965/SHYsig2J5tIxF/D8kieYkzxDXsUN5uzkjyoXxx6nPTYlPIm8qGyWZS1G1/cRGDS1\nLBwggwY6bIWqQ1mSsZBMfToTYsdhsEhe/z3WXso7K1lbNXy2ttaedvmZF+Yuk4+fny2FpFyQvdTj\nJZeuT+W2KT/06QkdCAqFgh9N+SGh6hCuHHOxbP/sMrs7IxosRj4o+YSS9qOD3s9oGd4a9cHEgrRC\nciKz6LH2MLBGkt3Rb79RK0+fdZhWpZVD20q9fPetvW18Uv4l7x75H/esk/Kmj4sZw1OLHiYxNJ6l\nmWfy/JInGBN9YrI2nihOn29whCip6UChgLxU76vNQKnx4hU9sB7tjy6dxI9c9pNjw+TVt2s2sozE\nCKoapfv96rpZ5Pool3i4tYRNddvZ1rDT63lwt2d1W3p4aLPk1DPQNukkIq6bRy85S94vaT9Ku6nD\nYzXu+pLvMJrZUeyp0nzm/y2kuS+MJFwTxvSxCXKloAfW7qPVIQl07fjtmA8WSmNP8LQ91hrqOdpR\ngdluIT0ixWu/4wc4NSkVSlQKVUBqNV8YXITLndOkcCOFQiGHpjgcDr6o/IZPj35J6yBq9WfO+j0q\npWTuuG/2XQD8Y/+/aO1t49vqjXx0VEokMTl+IuDgf2WfcVHOuX4deXyxqUpKJDE+Js/t+EW553JR\nrveqUcPFpPgJPLnot/J+dmQm5Z2VWO1WFCjY23yA9TWbOdR2hC8rv+W5JY/7vFdZX1jVkpx5J7TP\nI0W3VZqEtPa2Exfa7xfg/M8khwXm0HYq4bRpf1i2hrSIFDm2+WBrMc/t/ptH+8LkmYSodTw4916P\nc6cKQkgfBxarjUffkF5oL/70zCEVKB+Is5LPeXMyOWNiklvSAV+cOyeDuZOS+elzG9xs03MmJFLV\naGBWfqJPAV1jqOOZ3X/1eu6xBb+msquav+x5lSht//XvlvTHcToTJTj57dxf8OtNv6fD3Em9sRG7\nw06ULlL2+nX1QnZy3pxM1mytlJN3uPLTlVIspNPxZ6AN6edzb+Pejb8CQBne7+UaNcATu7mnRVYv\nD4bGy4rDgQODxXPyFCjOeMwlGQvdXqJOFmcs5IvKbzja6Vn4IS8qh0vHXECMLkoW0O5IkxyngAao\nM9bzYtE/ANjesJvHFvwafQAOU644HA5e3y3Zwqcn+s/FfqJR9I1zZ2MRneYu3i/5WD7nL7TIqV0o\nSByZOsAnmrExeTR0N8mRAk4+KpN+E8dqyw9mpiVM4o2D/wbghaK/88AZPyU+NM6rgH6o8D7iQ307\nK54qCCF9HLy/rl/lcttT3/qsB+sNu8OBAmll5XA42F8hrdhiInVDSnEXFa4lRq+lpa+e7ISsGJbN\nziAtIYL8TO+qxzpjA49u/ZPXc+dlLUGvjSBMLXmNr61aL6uYttZ7X3E/Ov9XROki5ThIpx3W30z+\n4vnZrHGJC54+Np5z52RittiYmBUjrTQrvgHwsGmGh2hZlXU9/6r4Bwqlg7kFScwYl+DmDNdr7fUI\n53EyL2U2qREptPW2+xRGYepQDBbjMdt9lQpJuPoKH/Jm67131p0cbi1hQVqhR+iNK8nhnl7Ia8rd\nzQ8//+63bqvwQHD9jqcn+E/QcaI5I2UmRzsreO3A217Pu+avHkhznxZkbsYM2lp9JA4/hQlVSb+f\n5p4W0lw0RM6MWsfjTxGsDPToPth6BL3GPWxyYux4LshZesyapGBDCOljpMdkdRMwQ+GrHdX884ti\nxqRHceWF0fx510t93gHnkuInn7UTk83MI1v+yNyUWdzyvVlyso4fnDcejVrFtDG+k807V3iuRGjC\niQ2Jkb2csyIlwWJ12ORctk4mxo3nQIvkfX1W+nw55OaC7LNlRyxwn8lb7FaP1WqoTs3Smel8uUNS\nW0/OjZPTkL5x4N9srt8ut53qJWduVmIU9DmP33yxe6KO0vZy/rjzL74+Aq4YezEhfl5iTiFtsVvR\nqoZehtPqkELdfDktDbxnuCaMrMgMsiL9eyLPTprO/8rc8yUPTC4BSDG5BC6kPz76ubw9FOF+ovDl\ncJYTmcnRzkoOtBz2KqSdnrzRuijUqtPzNadTSb+rv+59nccXPEiENtzNHn371JtGqmsnDKVCyQ0F\n3+dQawkb67Z65IH/wcSVXpPWnMqcnr/ek4DT5hsob3x+mMqmFlpiNtNRmg1EU1LdwaZaF4cvhd0j\nD7M3jnZU8OSO5wH46OjnPLf4bC5bmNNXNci/kLf0OUMpUHDl2O/RY+3xCI9RKpRuaQ+dhKh03D71\nRio6q/i2eqNbtqXBYkzL2ssZH+uZr/qyRbm0G0xYbQ4m58bRYeri/g0Pe7Tz5gDjunpwOBzUGRt4\nZOsfOTtjkYdn9IOF92KwGHmq73PzJ6Cd92/sacZgMRCrCizHsSsWmySkNUrfAv6OqTfxSfkXaJVa\nlo+/NOB7x4XGcmb6PL6t3ohKoWJJxkIqOqV4+KmJk3inWMrWZbZbAs7OZLPbaOmbwF059nsB9+VE\nEq7xjKG/OPc8IrV6jnZWUtVVw8babfzz0DuAtIq6efJ17G7qq6N8GtplnRSmzJTNHc/s/iuh6hA3\nZ7nsACZ7pyIzk6ZREJfPxjr30pjXTVhx2gloEEJ6yNjtDh5/a6dbRqsYvQ7VIHmu7XYHa3fWoE4r\nRhNSj25CI73bJa/ZHlP/zDchXkN81ODCY3/LIf6yxz0do8Fi5OL5gXssHmmXYihX5V/O/NQzfLbL\njEz3ENJOz8isyAyum7jC7ZxeG0FuVBa1hnp6bZL6XafSYrKZeWb3XzkjeaZc3Wb5pIuoaW0kNyqb\nK5Zlsq1hF9H6Av5b9qVHPxZnLPA4BtJEwlnmsLmnVbY9f1W1jgx9mlvbhNA49NoIUsOTKUwJLPu5\ncwxdZgMxumjeLn6flp5Wbii4elBVtBNnbuXBPGwnxI1jQtyx5aZePu5Slo/zLth3N+7lSHsZzT0t\nRHgRdN54yyUue7AQlpOJVqkhVB0ih9z86cxH0Ko01BqkJDMDKyYdaD3Mj7/9pbw/MYDQr1MVV2fM\nmr6KVxqlhnBNGJeNueiUCjMaKiHqEKYnTGZX015Wjr+chWmFI92lE4YQ0kOgqb2HrQcb3AT0VYvz\nWLenjoZW3+Eehl5nGI/0p1Eo7WjH7sRcXsCu0gbUfaaTu1aM91vZZaCABilpQ6DYHXa+qZbisKP9\nJMc4N2sJG2rdZ6uXDJKnWKlQ8tOZtwPw7K6XKe04yg8mrpJL9Lm+TP+9T8qh63r/ddWbmJk01eOe\ni9MX+nxmdmQmLb1tfDMg3Z8z/MlZqxYkG90vz/iJz3sNJCcyk4Otxfyv7DPyY8fyXY0Ud/7Ujud5\noPAeAA61HmFHeyczo93r39oddvb2JVPQDrKSPlEkhMZxpL3MI3xpMFzNC8ei3j8RKBQKvpd7PquL\n3wf6+5UYFljt4KkJQ8tXfiqhUCi4adK1/G3fG9I+Cu6afjO5Udkj27GTxE2Tr/Xf6DRACOkh8Ng/\nd7qFOoHkoeyM7W3rMmGz2dFpVSiVCirru4iNDJGFusPa/+JTxTQSGtOIw9YvlHc37XNT4Q5kYDyk\nE8sQhHRRn7c0QH6M75rGIKlUn1r0MD9d9wAg5RQONHvR/029AbPdgsMxSM7NARit3ayrkfJs3z71\nRibEjqPX1jtoWsP82LHsaNwjTzwGcjzenW19uZEPthZz0CVpRH13I3XGBlLCk3h298sAZM3NcXvW\n7qZ98ko8IUCBMpykRUhx9N2WwBymXDOrjY3LCaoEGM7fXH7MWPlYIPG/aqXaZyKe04XpiZN5ctFv\nMFp60Km0Q/bmFwQ/QkgHiN3h8BDQIM1m9aEa2rpM/PR5SVDEReqICNNS0VcWcm6B9JJRhnkm01eo\n+nM7f3L0Cy4ckJ7SlYGOQU5v6qGspJtd4n4DcQwKUet4sPBndJi6hpQEQKVUEapUHXMykEx9OgqF\nwm/eYdck/QMZ52cS4o9JcfluqUdd+aDkE1blXy7vH2w9LJcSBPh3sVTD+OzMRSPiZeuszfv6wdWc\nkTLTT2v3hCEPLf4x7a3eMzqNBGOic7h31p2khLtnyVuWtVhOTANS3utInZ56YyNh6lASwxJOq2Qe\nvghVhw5rfm5BcHH6/4KHge5eC3c87V7JqXBiEnMnScI3LiqEShdHspZOkxwSBXCgQkougO34vGWd\nTj1R2khW5V9OcVspxW0lQ8qsFN0X9zyU3LVDLTzgilalYVnWYqx2K19XSZ/hjZOu4ZV9bw56XYQ2\nMDtqUlgiq8ZfTllHBWabmVX5V3Dv+ocAuHXyD46pz06mJkyScyQvSpuLTqWjx9rLZxVfs6/loGwH\nBLDZ3TUGyj7TxoU5yxgJao1DKwzS2udod1722X11uoNHSANePd7PzVoiC+nv51/BtL6azqNF3SsY\nHQghHQCbDzR4HLtkQQ5JfRWo/JUy7DBIxR9m5MdS1O4ZJnPZmAvdkjT4wuksc+mYC+Tc0kOluL0U\nCKxI/XDhjLOO0UURrglnRuIUOgsuZGf1frkAgisPnPHTgO+tUChYkFbIAhfHEW+JU44FhULh1Ya9\nrmYTPdYeN/+Ao50VnMV8OkxdvFj0Kh19JQh1x1j39nj53bz7+dXGRwHJPu5Pfe0M3fFWtStYCVHr\nuGPaTexu3EthcmDOgALBqUbwGJ6CmA/Wu+eJHZseRZyLF/Z4H0lD9GHuzjdNJiluODEsnqnx/Q4t\ni9LmkRgq2S29xboCNBlb+KwvV7aqL0mG8xqbI/AXq63vZeyMbT6ZLMlcJKter5p0EXdOv4Ux0Tlc\nP3EVf1j4EBkRqcxMnEryALVmsOHN29wZ/vSrjY9Q6ZKze6RwzaHdZTYO0lJiS53k1BdobeRgYULs\nOFblXxEUMd0CwYlArKQDYGpeHBv2SavYp+9cQGS4++ooM8l7hrDF09NYu6uGrm7JLmuwSqurn8++\nG51Ky9M7X0SBAq1KQ2OPVLLxD9uf87oSfHpjf9o7p4OS0942FJv05jrJg3cwB7WThbM2rZOfz7l7\nBHsTOCovq9KmnhYqO6vdkkmMNM6Qt0B+H87EMwPtvgKBYGQRK+kA0LsI5YECGqRCFy/89Ewi+1bO\nGrX0sZ49Mx27vd8ju8cmedo6VaB3Tb+FO6ffDOBXXdfa0x/25UzZOVQhbXFx4hKOJsfOmOhcr8cf\n3/6MvK1AwXOLfRd/OBn0/z78O+/Z7Db0moiAsp0JBIKTh1hJB0BpjSQgb7vEd8ylTqPioRvm0N1r\nJVSnprvXImcAO1rXCTiw2q2yihpwsxN+P/8KNtdvJ0Tl3RO4pac/lWdsnyrTqfa2Bqjubnepr+ut\noIQgMAYmB1mSM4+vj26U9yfHT2D5uEtHPJmE8zsOJETPYrcEnPREIBCcPMRKOgBqmyWb3oxxg3s4\nR0foSI0PJ0avI62vZGJGYt+LTy05jw0siehEpVShUapRKT2/krKOCnn7mgnLZfubs21zgOUUTX1x\nu1HawAt4CDxxzRWdGp7M1VMvIzsyUz521dhLiQ0ZehrR4cb5O9nTl1RlMKx2m5i4CQRBiPhXBkBE\nqAZjrxW1auhzmssW5gIKIjNr+KoBlIOsrtIiUinvrOT2r+/l8jEX8XnFWgwWo1us51yXlJbO5CbO\nRPv+sPSpPeck+4+bFfhGoVDw89l3s656IxfkLEWvi+COaTfyfsnHZEdmeS1LORKkhkshgv7i7212\nG7223lERUywQnGqIf2UAWG0O4iIDE4QDiYrQcf35+bx7RCqkUTBIfLLRpUbzeyUf9T+/T105MA+x\n00M7UO9uZ5y1JkhSPp7KZOhTuXrClfJ+qDqU7+dfOcgVJ59A7cvVffnZzQHYrgUCwclFqLsDwGq3\nozqGVbQrdUYp1tpbJSgn/pIwXJxzrtu+WjE0xzFnH/CRXlRwehHjkpvdMkjmt+I2KXbeVWUvEAiC\nAyGkA8BmcxyTqtuVjj6nLV+OYSDVL/aFWqkmXZ864Fif41iAQtqZ+jE7SryMRwMhah2T4ycC0NLb\n6rWN3WHnv6WfAlLMsUAgCC6EkB4Eu8NBY3sPhh4L6kFKUQ6G2WbB7rDLaRp1g6iaB9Z0Bnio8D7u\nmXkHz134sEfWqP4QG//qbrPNLBdRSA4TsbCjhR6rFPb3xPZnvZ4/2FqMA0mzIoS0QBB8CJv0IDz3\n7l52l0hJRpo7hp7L2OFwuNW2BQZNzxiuCeOOqTdhtBjZ13KIwpRZJITFkUAcsWF6mozuBTqc96oe\nUPN5ICabmZ98+yt5fyQKPghGBrNNiiow2cxY7FYPD+5OU/9vKkR9bH4XAoHgxCGEtA86DCZZQAN0\nmwLP6uXkjrX3eRzT+snlPCFOWs3MSp7u9/5OYesvxafrixggTCMSmYwWcqKy5TSldYZ6MiPT3c7b\nkTKkzUqadtL7JhAI/CPU3T546UP/saVD5bzss4f1fhqlpDr3VxShpOPooOcFpy+X9hU3AbwWM3mn\n+L8ATIn3nahHIBCMHEJI++BQZbu8HRGqYdXSsYO09qTT7Fk7erBY1WMh0LSgtS4lFXOEB++oQqvS\nyg6J/znyocd5ZzYyb79XgUAw8gh1dwD8+a4FQ0rx2G3p5tGtf3I7Fq2L8lsucKjI3t1+4qSd8a+/\nOuOnooDCKGRO8gy+qd7gcdzhEoo3lPriAoHg5BGQ1Hj00UdZsWIFK1eupKjIvYbxl19+yRVXXMGq\nVat48803AdiyZQuFhYVce+21XHvttTz88MPD3/MTSHNHj7z93N0LAxLQBouRXquUdvOJ7c/K4U5O\nbii4eng7SX+ctKnPOcgXvVbJ6U2rFElMRiNzU2bL287fAsCRvtriAAlh3tPVCgSCkcXvSnrr1q1U\nVFSwevVqSktLuf/++1m9ejUAdrudhx9+mPfff5/o6Ghuvvlmli6VwojmzJnDM888M9itg5aSapeK\nUyH+BVtlZ7VcAen+OT+mySWX9j0z78BgMZAXnT3s/XTmZq4z1A/arrpP3e3PaU1weuLqtW2xW3H6\n9tcbm0amQwKBIGD8rqQ3bdokC968vDw6OjowGKRVYltbG5GRkcTGxqJUKiksLGTjxo2D3e6UYKjV\niw60Hpa3B6q5c6Iy5YQSw41Tfd5lMfhsU9FZRX1fprEQEXo1KokLiZW3u639WiJnVMCkuPyT3ieB\nQBAYfoV0c3MzMTH9BQNiY2NpamqSt41GI+Xl5VgsFrZs2UJzsxS2VFJSwm233caqVavYsMHTHhas\nbD/UKHt2T8gKrFDCxtptJ7JLg6JSqOT61N74qOxzeVvJyJZOFIwMCoVCFsSuZhinw2GBENICQdAy\nZMcxV2cThULBY489xv33349eryc9XYrBzM7O5o477uD888+nqqqK6667js8//xyt1rcwiYkJQ61W\nHcMQfJOQMPSSjH957Gt5+6KFuQHdw1fKxRtmrDimPvjC273GxedysOkIWr2DqBDPeGmDrf+lnJQY\nNeI1jl0Zzs9mpAn2sUxJy2dfyyE6aCUhYQoAew/vAyA6Mtyj/8E+nqEixhO8nE5jgeEfj18hnZiY\nKK+OARobG0lI6K+nO2fOHN566y0AnnrqKdLS0khKSuKCCy4AIDMzk/j4eBoaGsjI8F2Vp62t+5gH\n4Y2EBD1NTccXVqKw2f3eo7S93OvxsdG5zIyeedx9cOJrPCaz5Ln9zu41XOISE+skMzydyo4awtVh\nNDf7VoufbIbj+wkWToWx2Pr8xdaXbWNmtFSqdFvNHgAO1h1lSuRUue2pMJ6hIMYTvJxOY4GhjycQ\nge5X3T1//nw+++wzAPbv309iYiIRERHy+ZtuuomWlha6u7tZu3Ytc+fO5cMPP+SVV14BoKmpiZaW\nFpKSTr3Qnxi9/zSJf9z5F6/HNSfJk/qs9PkAfF6x1ut5RZ/d+o5pN52U/giCk+mJ0ur5SHsZ4K4R\nm5JwYnwmBALB8eN3JT1jxgwKCgpYuXIlCoWCBx98kPfeew+9Xs8555zD8uXLueGGG1AoFNxyyy3E\nxsayZMkS7rnnHr766issFgsPPfTQoKruYGTFkjEkxYYd8/WuzmQnEn8pPmv68noLp7HRjV4bQYgq\nhF5bL629bURq+2fworCGQBC8BGSTvueee9z28/P7HU2WLVvGsmXL3M5HRETw4osvDkP3Ti5tXSZ5\n+9w5x5aZa3L8BPY2HxyuLvllfIxUnzrUR5nLMLU00dBrI7yeF4wexsXkUdS8n9bedvn3IpKYCATB\njUgL6kJdi3FI7e0OqTjB2Ohcbp58HYszFnBDwTWckTyTe2fdeSK66IFSoUSr0hIfGuv1vKUv25hI\nZCJwpoTdWLtV9uweWBVLIBAEF+If6kJTuxRDunLJmIDaGyySUO80G5iWMIlpCZMAuG7iihPTQR9o\nlGo5B/NAagx1KBVKOfGJYPSSF50DSNEIZps0eVMLIS0QBDViJe2C2SqtjG0uTjWDUduX6St1hPNh\na5Qa6o0N8srelXBNuNfjgtFHXnQ2WpWWis5qevqSmgxMXysQCIILIaRd6O2rGZ0WH5j99tndLwOw\nq2nvCetTIDhzdx9o8XRWczjsRGjCT3aXBEGKw+HAYrdQa5QmmBn6tBHukUAgGAwhpF1oaJNWF2qV\n/4QfH5R8cqK7EzDz+goovFD0d49zVodN5OwWyCSHJwLw2oG3AVANc2U2gUAwvIh/qAuhOsk+FxE6\nuJOVzW7ji8pv5P2HCu87kd3yS1JYf3IZxwBVvc1uFS9igczMxKlu+xqVcCgUCIIZ8fbu499fl/DV\njmoAdJrBnawGFrQY6TJ/k1wKeDR2u1c2sjpsqIRzkKCPsTG5bvvRuqgR6olAIAgEIaQBi9XOmq2V\n8r7Wj5DuNPenfXt+yRMnrF+BEqXrT0zx7+L/up2z2W2oFcKzWyCREeFugxamEIEguBn1QtpksfHX\n/+13Oxaq8y3UOkydPL5Nqh09OT54EkEkh0m2xoGhWL02kwi/EsiolCoemf9Led9ut41gbwQCgT9G\nvZD+akc1Ow67q4gHU3ffv+F38vbB1iMnrF9D5eoJVwFQ2nFUPua0T7f2tI1InwTBiTMLHcCYAepv\ngUAQXIx6Y+XR2k6PY4GWc4zWepaGHCkiNP0v3qquGjL0abSbOgBPG7pgdKNVafjF7LvptZmETVog\nCHJGvZDeUdzkv5EP7pv9/4axJ8dHoouHd72xkQx9Gh1mzwmIQACQrk8d6S4IBIIAGPVCWh+moatb\nSpGYFBPK+YVZPts6k4Y48VeBaqRxJjGJC/Ge11sgEAgEwc2oF9KuYcWrlo5lSl68z7Zl7eXytoLA\nVOIjgTOnuLXPKSg/duxIdkcgEAgEx4gQ0i5SOjtlcBtzj60XgLPS53PVuEtOaL+OB2eImM0hCWm1\n8O4WCASCU5JR793da+4PQYkMGzxm1FneLzU8+YT26Vi5Y+pNgOQ4BlKMNIBKxEkLBALBKcmoF9Kq\nAPJ0O3HWZg7W8n7OUoQDV9JCSAsEAsGpyagX0uEhUu7ix24t9NvWmSgkWPMda/v65bSXGy3d0n6A\nIWUCgUAgCC5GvZA2W2ykxYeTGBPmt21jdzNAUKfZjNJGUm2o5eHNT+JAsrebbKYR7pVAIBAIjoVR\nLaQdDgfGXitaTWAfQ6hKBwT3yrS3z7mtvruRWoNUMzhehGAJBALBKcmoFtLGXkl93W4w+2kpUWts\nACBaF33C+nS8JIb2h5B9WLYGALUyONXzAoFAIBicUS2kzRbJsWp8RmBC1+k1HaoOOWF9Ol66rT0e\nx6x9Dm8CgUAgOLUY3XrMBBQAAB5lSURBVELaagcISN1ts9toM7UDoNdGnNB+HQ/eEpdE6YInx7hA\nIBAIAic4Y4lOEnUtUmYupdK/kHYtAakNYvXxpXkXolKoMFiM9FpNpOtTmZYweaS7JRAIBIJjYFQL\naZtN8n7Wqv0LaaujX0gHs+NYmCaUFeMvG+luCAQCgWAYGNXqbkufujs1PtxvW2f2LoFAIBAIThaj\nWkhXNUl1llVK/ytjZ0rQM5JnntA+CQQCgUDgZFQL6TVbKgHYf7TVb1unkBbFKgQCgUBwshjVQtpJ\nStzg2cYsNgvF7aUAmG0inEkgEAgEJ4dRLaQLJyYBMCs/cdB2f9//Fm8ffh+ASK3+hPdLIBAIBAIY\nxULa2Gth8wEpg5haNfjHsKd5v7wtYo4FAoFAcLIYtUK6tKZD3o6L8p1B7EDLYbd9bxm9BAKBQCA4\nEYxaIW139G8rB4l7fn7PK277xW0lJ6pLAoFAIBC4MWqFtC6ABCbeiNZFDXNPBAKBQCDwzqgV0s68\n3UNlbsrsYe6JQCAQCATeGbVC2qntXjozfUjXeStgIRAIBALBiWDU5u52lqlMHiRGurmnRd6+oeBq\ntCoNSsWondcIBAKB4CQzaoX0v748AvhOCVpjqOPRrX+S92cmTT0p/RIIBAKBwMmoXRZ2GM0A1DZ3\nez3vKqAFAoFAIBgJAhLSjz76KCtWrGDlypUUFRW5nfvyyy+54oorWLVqFW+++WZA1wQT8yYl+20T\nJbKMCQQCgWAE8Kvu3rp1KxUVFaxevZrS0lLuv/9+Vq9eDYDdbufhhx/m/fffJzo6mptvvpmlS5dS\nWVnp85pgIzl28LzdAEnhSSehJwKBQCAQuON3Jb1p0yaWLl0KQF5eHh0dHRgMUonHtrY2IiMjiY2N\nRalUUlhYyMaNGwe9JliIitACoNN6VrVyOBxu+xNjx52UPgkEAoFA4IpfId3c3ExMTIy8HxsbS1NT\nk7xtNBopLy/HYrGwZcsWmpubB70mGGjrMtFhMPs875r689oJyzkrff7J6JZAIBAIBG4M2bvbdZWp\nUCh47LHHuP/++9Hr9aSne485Hrgy9UZMTBhq9fDWak5I8G5LXr+vYdA2mw5tBiA7Op2Lpywe1j4d\nD77Gc6pyOo3ndBoLiPEEO6fTeE6nscDwj8evkE5MTKS5uVneb2xsJCEhQd6fM2cOb731FgBPPfUU\naWlpmEymQa/xRlubdy/rYyUhQU9TU5fXc0VHGuVtb23e3PMeAM3GNp/3ONkMNp5TkdNpPKfTWECM\nJ9g5ncZzOo0Fhj6eQAS6X3X3/Pnz+eyzzwDYv38/iYmJREREyOdvuukmWlpa6O7uZu3atcydO9fv\nNSPNxCxJFe+0S/tCrRy1YeQCgUAgCAL8SqEZM2ZQUFDAypUrUSgUPPjgg7z33nvo9XrOOeccli9f\nzg033IBCoeCWW24hNjaW2NhYj2uCCX2YJJwvmps9aLt2U8eg5wUCgUAgOJEEtFS855573Pbz8/Pl\n7WXLlrFs2TK/1wQTlr7iGho/lbBEClCBQCAQjCSjUgo1d0je294Sgrb0tMnbf1j4m5PUI4FAIBAI\nPBmVQjpE51uBsKNxd387te5kdEcgEAgEAq+MSs8om00KCdOHS7bpI22lPL3rJdQKFblR2SPYM4FA\nIBAI+hmVK2mLTbJJq1WSwvvFotcAsDpslHQcBSBPCGuBQCAQjDCjUkhbnY5jKmn4OlV/KJbdIZ0b\nE5178jsmEAgEAoELo1JIG3otAKhUSnqsvTjwzIiWFDZ48hWBQCAQCE40o9ImvXZnDQAqpYJ71v3a\na5sIbfAkXxEIBALB6GRUrqSdxEb69t4Wla8EAoFAMNKMOiHtWuzD5DB6bZMTmYlC4S2KWiAQCASC\nk8eoE9JdPRZ5+8V9r3pt09Lb5vW4QCAQCAQnk1EnpDtd6kg3dDd6bROtizxZ3REIBAKBwCejTkib\n+8Kvls70XvsaoLKr5mR1RyAQCAQCn4w6IW2x2gAIC3F3bM+PGTsS3REIBAKBwCejTki3dPYC7hWw\nFqQV0tTTLO9PEJ7dAoFAIAgCRp2QVvZ5bTvLVQJcMeZibp78A3k/PSL1pPdLIBAIBIKBjDoh7bRJ\nJ0aHAqBSqNCqNKSEJ8ptRPiVQCAQCIKBUSek2w0mABps5QDYHJKNWqVQyW1UilH3sQgEAoEgCBl1\n0sip5u60drgdd109K4WQFggEAkEQMOpydysUCtCY2Nq5FoAFqWd4tDnaUXmyuyUQCAQCgQejbslo\ntthQqE3y/vaG3R5tGl08vQUCgUAgGClG1Up6bdV3rFd8SMjk/mO9NpNHu/xYETMtEAgEgpFnVK2k\n/3PkQ49jK8ZdKm/fM/MOciKzOC9rycnslkAgEAgEXhlVK2lvzHexSedEZXLPrNtHsDcCgUAgEPQz\nalbSFpvF63GVUuX1uEAgEAgEI82oEdI1xjqPYzmRmSPQE4FAIBAIAmPUqLtbetxrRM9Lmc3lYy8a\nod4IBAKBQOCfUSOkI7V6t/2rJ1w1Qj0RCAQCgSAwRo26u83UPtJdEAgEAoFgSIwaIS0QCAQCwanG\nqBHSVrttpLsgEAgEAsGQGEVC2ipv29oTRrAnAoFAIBAExqgR0s6SlNamVK6buHyEeyMQCAQCgX9G\njZDuMZsBsLUmk5MQP8K9EQgEAoHAP6NGSB9prpI2HEo0qlEzbIFAIBCcwowaaaVT6aQNuwq1etQM\nWyAQCASnMKNGWtmRHMccFh0qpWKEeyMQCP5/e/ceHHV573H8/dvfZhNCgmQxixVhgBw1GARh0uNA\nWqU20BZ6mWEqE2codIptFXGcttCkgRH7BxdvnTJ2OgUOznSQkVSlPUg7xFOVGdumcBBMDS3DkHNk\nUCnZFRoIue3lOX8kWcMxkIuB3/6efF7/uL/Nsvl+5xn88PwuzyMi/RsxId2zb7RJBcjSTFpERHxg\nxKRVtOMsACWTIuSERsxqqCIi4mMjJqQvJLqWBS2+RXd2i4iIPwxoSrlx40bq6+txHIfq6mpmzJiR\n/tmuXbvYu3cvgUCA6dOns3btWvbs2cOWLVuYNKlrK8i5c+fy8MMPX5sOBskNjJh/l4iIiM/1G9KH\nDh3i1KlT1NTU0NjYSHV1NTU1NQC0tLSwY8cOXnvtNYLBIN/5znd45513AFi4cCGVlZXXtvoB6kzG\n06/jCS0PKiIi/tDvtLKuro7y8nIAioqKaG5upqWlBYCsrCyysrJobW0lkUjQ1tbGDTfccG0rHoK2\nRBsAyX/dyN4/v+dtMSIiIgPU70w6FotRUlKSPg6Hw0SjUfLy8sjOzuaRRx6hvLyc7OxsFi1axJQp\nUzh69CiHDh1ixYoVJBIJKisrueOOO676ewoKcgkG3U/fUS+FhV17SL/y3/8JgDs2RvHUcen3/cav\ndV+JTf3Y1Auon0xnUz829QLD38+gb3M2xqRft7S0sHXrVvbv309eXh7Lly/n+PHjzJw5k3A4zLx5\n8zh69CiVlZW8+uqrV/3e8+dbB1/9VRQW5hONXgSgqflc+v17Znwm/b6f9O7HBjb1Y1MvoH4ynU39\n2NQLDL6fgQR6v6e7I5EIsVgsfdzU1ERhYdcuUo2NjUycOJFwOEwoFKK0tJSGhgaKioqYN28eALNm\nzeLcuXMkk95dC74rcicA8ff/jZCekRYREZ/oN7HKysqora0F4NixY0QiEfLy8gCYMGECjY2NtLe3\nA9DQ0MDkyZPZvn07+/btA+DEiROEw2Fcd3hPZQ/Ge82nul6kXK02JiIivtHv6e7Zs2dTUlJCRUUF\njuOwfv169uzZQ35+PvPnz2fFihUsW7YM13WZNWsWpaWl3HLLLaxZs4bdu3eTSCTYsGHD9ejliv70\n4UEA3MhpAgppERHxiQFdk169evVlx8XFxenXFRUVVFRUXPbzm266iZ07dw5DecMjFMiiMxUn2TTR\n61JEREQGbERcoJ0V6Vp8JXkxzOicLI+rERERGZgREdKu0309PBHUNpUiIuIbIyKxkqb7znITIKhr\n0iIi4hMjIqQTqe69pI2jmbSIiPiG9YmVMinebqrvOjABgq71LYuIiCWsT6y/RY99fJAKMCrbu+e1\nRUREBsP6kHacXtegjaOtKkVExDesT6xgoNcjV8b6dkVExCLWp1bK9F4zXHd2i4iIf1gf0tHWWP8f\nEhERyUDWh3TA0Y1iIiLiT9aHdDwVT7+OFIzysBIREZHBsT6kexYy6Theyr133exxNSIiIgNnfUjH\nu0OalEtQj1+JiIiPWJ9aZ1ub0q+Dru7uFhER/7A+pN+JNgBgkkFcLQkqIiI+MnJSKxmkvTPZ/+dE\nREQyxIgJaWMChPOzvS5DRERkwKwO6WSq18w5EeR8S4d3xYiIiAyS1SHdmmgDINWaB8YlmTQeVyQi\nIjJwVod0z0ImpjMHgLH5IS/LERERGRSrQzrRfbq7J6T/vXi8l+WIiIgMiuUh3b2QSfcWlYGAnpMW\nERH/sDukTU9IK5xFRMR/7A7p7pm0SVndpoiIWMrq9LoUbwXAcRMeVyIiIjJ4Voe0Q9dpbpMIsezL\nt3tcjYiIyOBYHdLp092JLMbmabUxERHxlxER0qQCoHVMRETEZ6wO6fMdzV0vjMvfGmPeFiMiIjJI\nVod0MBDsehFIcGfROG+LERERGSSrQ7qte+1uE89hYiTP42pEREQGx+qQ/v3//hcAbvifBF2rWxUR\nEQuNiORyx3ykkBYREd8ZEckV/3AqrtbtFhERn7E2pI35+Jmr5Ec3ayYtIiK+Y21ypUzq44NkkKCr\nmbSIiPiLtSEdT328XnfIdXEchbSIiPhL0OsCrpWe1cYC8Vwc1/W4GhERkcEbUEhv3LiR+vp6HMeh\nurqaGTNmpH+2a9cu9u7dSyAQYPr06axdu5Z4PE5VVRUffvghruuyadMmJk6ceM2a6Esi2RXSbkcB\nRqe6RUTEh/o93X3o0CFOnTpFTU0NGzZsYMOGDemftbS0sGPHDnbt2sWLL75IY2Mj77zzDvv27WPM\nmDG8+OKLPPTQQzz77LPXtIm+tCc7ga69pHXTmIiI+FG/6VVXV0d5eTkARUVFNDc309LSAkBWVhZZ\nWVm0traSSCRoa2vjhhtuoK6ujvnz5wMwd+5cjhw5cg1b6FsylQQgFWzV41ciIuJL/Z7ujsVilJSU\npI/D4TDRaJS8vDyys7N55JFHKC8vJzs7m0WLFjFlyhRisRjhcBiAQCCA4zh0dnYSCoWu+HsKCnIJ\nBofv2vHp5osAdF7M5VJzO4WF+cP23V6xoYfebOrHpl5A/WQ6m/qxqRcY/n4GfeNY7+ePW1pa2Lp1\nK/v37ycvL4/ly5dz/Pjxq/6ZKzl/vnWwpVxVMtj9CFag67/R6MVh/f7rrbAw3/c99GZTPzb1Auon\n09nUj029wOD7GUig93u6OxKJEIt9vM1jU1MThYWFADQ2NjJx4kTC4TChUIjS0lIaGhqIRCJEo1EA\n4vE4xpirzqKvhb+d/TsAwcIPruvvFRERGS79hnRZWRm1tbUAHDt2jEgkQl5e145SEyZMoLGxkfb2\ndgAaGhqYPHkyZWVl7N+/H4A333yTu++++1rVf0VnLkav++8UEREZTv2e7p49ezYlJSVUVFTgOA7r\n169nz5495OfnM3/+fFasWMGyZctwXZdZs2ZRWlpKMpnkL3/5Cw888AChUIjNmzdfj14uUzphBq//\nz59INN1y3X+3iIjIcBjQNenVq1dfdlxcXJx+XVFRQUVFxWU/73k22ks9y4Km2vIYM/r6nmoXEREZ\nDtY+QNyz4hjG4d6ZN3tbjIiIyBBYG9IXO7qe5cYEtLmGiIj4krUh/R9v7wbAvSGGqxXHRETEh6xP\nLyfnEiffb/a6DBERkUGzPqTB4dRZex6WFxGRkcP6kDYdo1h8z1SvyxARERk0a0M6P7trwZXEPydz\n842jPa5GRERk8KwN6Rnju57lTrXnahcsERHxJWtDOtm9mAnG0X7SIiLiS9amV8+KY6BZtIiI+JO9\nIZ3qPZNWUIuIiP9YG9K9T3fHk/3vZy0iIpJp7A3pXjPpm8KjvC1GRERkCCwO6WT3Kwc3YG2bIiJi\nMWvTK9Ed0iVTxnlciYiIyNBYG9LJVApjICc4oC2zRUREMo69IW2SYBxc3dktIiI+ZW1Ip1KprpDW\n9WgREfEpaxOs6xEszaRFRMS/7A3pVNfp7qDW7RYREZ+yNqQT3ae7L7bGvS5FRERkSKwN6ZTpCukb\nx+Z4XYqIiMiQ2B3SOOSE9AiWiIj4k7Uhfb7jHEaba4iIiI9ZG9I5gVwC2e1kBV2vSxERERkSa0M6\nRYpUax4dnQmvSxERERkSa0PamBSYAJGCXK9LERERGRJrQ7rn7m5Xz0mLiIhP2RvSpDAKaRER8TEr\nQ9oYgyGlDTZERMTXrAzprmekAeMQ0ExaRER8yvKQDuA6CmkREfEnK0M6aZLdrxxc18oWRURkBLAy\nwdIz6ZROd4uIiH9ZGdLJnpDGoaMzedXPioiIZCorQzqe6tqe0hiHi62dHlcjIiIyNFaGdM/pbifU\nQU62dsESERF/sjKkE6muU9ymbTTFk8Z6XI2IiMjQDGiauXHjRurr63Ech+rqambMmAHA2bNnWb16\ndfpzp0+f5kc/+hHxeJwtW7YwadIkAObOncvDDz98DcrvW8/d3Q6u9pMWERHf6jfBDh06xKlTp6ip\nqaGxsZHq6mpqamoAGD9+PDt37gQgkUjwrW99i/vuu4/a2loWLlxIZWXlta3+CnpCOmDniQIRERkh\n+k2xuro6ysvLASgqKqK5uZmWlpZPfO63v/0tX/rSlxg9evTwVzlIyVTPTFohLSIi/tVvisViMQoK\nCtLH4XCYaDT6ic+99NJLfPOb30wfHzp0iBUrVrB8+XL+/ve/D1O5A9PzCJZCWkRE/GzQF2yNMZ94\n7+jRo0ydOpW8vDwAZs6cSTgcZt68eRw9epTKykpeffXVq35vQUEuwaA72HL69M9UCADXcSkszB+W\n78wENvUCdvVjUy+gfjKdTf3Y1AsMfz/9hnQkEiEWi6WPm5qaKCwsvOwzBw4cYM6cOenjoqIiioqK\nAJg1axbnzp0jmUziulcO4fPnWwdd/JV80D3Td0yAaPTisH2vlwoL863pBezqx6ZeQP1kOpv6sakX\nGHw/Awn0fs8Hl5WVUVtbC8CxY8eIRCLpGXOPd999l+Li4vTx9u3b2bdvHwAnTpwgHA5fNaCHW3qu\nH9RCJiIi4l/9zqRnz55NSUkJFRUVOI7D+vXr2bNnD/n5+cyfPx+AaDTKuHHj0n/ma1/7GmvWrGH3\n7t0kEgk2bNhw7TroQ88p+WAyr59PioiIZK4BXZPu/Sw0cNmsGfjE9eabbrop/WiWF3oewUoltbmG\niIj4l5W3P/csC5rU3hoiIuJjVoZ0z7KgY3JzPK5ERERk6CwN6QQAwYCV7YmIyAhhZYrFu89zu871\nu6NcRERkuFkZ0q3xNgBcx8r2RERkhLAyxf74/psAxLOaPa5ERERk6KwM6R6dAXtWshERkZHH6pBO\nJqxuT0RELGdlihWEwgBMDt3hcSUiIiJDZ2VI3zzqFgCy3WyPKxERERk6K0M6mepacSzrOm7qISIi\nMtzsDOnuZUFdLWYiIiI+ZmWKtXV0bVEZ0GImIiLiY1aGNN2bX4WCCmkREfEvK0M61X1NOpw/yuNK\nREREhs7KkE7SFdLaYENERPzMyhRrS7UAurtbRET8zcqQdglikgGygkGvSxERERkyK0N6hjufjn/c\nTchVSIuIiH9ZGdJBk4tpvYGga2V7IiIyQliZYu83XQLADTgeVyIiIjJ0Vob0mNFZAGQFrWxPRERG\nCCtTLJE0AOTm6Jq0iIj4l6Uh3f2ctK5Ji4iIj1mZYsnumbRCWkRE/MzKFOuZSevGMRER8TM7QzrV\nM5NWSIuIiH9ZGdLJpPaTFhER/7Py9udIQS6XOhIEdLpbRER8zMqQXv7l2xk3Lo9z5y55XYqIiMiQ\nWXk+2HEcXN3ZLSIiPqckExERyVAKaRERkQylkBYREclQCmkREZEMpZAWERHJUAppERGRDKWQFhER\nyVAKaRERkQylkBYREclQCmkREZEMpZAWERHJUI4xxnhdhIiIiHySZtIiIiIZSiEtIiKSoRTSIiIi\nGUohLSIikqEU0iIiIhlKIS0iIpKhgl4XcC1s3LiR+vp6HMehurqaGTNmeF1Snw4ePMhjjz3Grbfe\nCsBtt93Ggw8+yI9//GOSySSFhYU8/fTThEIh9u7dy69//WsCgQBLlizh/vvvJx6PU1VVxYcffojr\numzatImJEyde9z5OnDjBypUr+fa3v83SpUs5c+bMp+7h+PHjPPHEEwDcfvvt/PSnP/Wsn6qqKo4d\nO8bYsWMBWLFiBfPmzfNNP0899RRvv/02iUSC73//+9x5552+HZ//38sbb7zh27Fpa2ujqqqKjz76\niI6ODlauXElxcbFvx6avfmpra307PgDt7e189atfZeXKlcyZM8ebsTGWOXjwoPne975njDHm5MmT\nZsmSJR5XdGV//etfzaOPPnrZe1VVVeYPf/iDMcaYZ5991uzatctcunTJLFiwwFy4cMG0tbWZRYsW\nmfPnz5s9e/aYJ554whhjzFtvvWUee+yx697DpUuXzNKlS826devMzp07h62HpUuXmvr6emOMMT/8\n4Q/NgQMHPOunsrLSvPHGG5/4nB/6qaurMw8++KAxxphz586Ze++917fj01cvfh6b3//+92bbtm3G\nGGPef/99s2DBAt+OzZX68fP4GGPMz372M7N48WLzyiuveDY21p3urquro7y8HICioiKam5tpaWnx\nuKqBO3jwIF/84hcB+MIXvkBdXR319fXceeed5Ofnk5OTw+zZszly5Ah1dXXMnz8fgLlz53LkyJHr\nXm8oFGL79u1EIpFh66Gzs5MPPvggfQak5zu86qcvfunns5/9LFu2bAFgzJgxtLW1+XZ8+uolmUx+\n4nN+6AVg4cKFfPe73wXgzJkzjB8/3rdjc6V++uKXfhobGzl58iTz5s0DvPv/mnUhHYvFKCgoSB+H\nw2Gi0aiHFV3dyZMneeihh3jggQf485//TFtbG6FQCIBx48YRjUaJxWKEw+H0n+npqff7gUAAx3Ho\n7Oy8rvUHg0FycnIue+/T9hCLxRgzZkz6sz3fcT301Q/ACy+8wLJly/jBD37AuXPnfNOP67rk5uYC\n8PLLL3PPPff4dnz66sV1Xd+OTY+KigpWr15NdXW1b8fmSv2Af//uPPnkk1RVVaWPvRobK69J92Yy\neNXTyZMns2rVKr7yla9w+vRpli1bdtnM4Eq1D/Z9Lw1HD1739Y1vfIOxY8cybdo0tm3bxi9+8Qtm\nzZp12WcyvZ8//vGPvPzyyzz//PMsWLCg31oyuZ/evTQ0NPh+bHbv3s0//vEP1qxZc9nv9+PYwOX9\nVFdX+3J8fve733HXXXdd8R6f6zk21s2kI5EIsVgsfdzU1ERhYaGHFV3Z+PHjWbhwIY7jMGnSJG68\n8Uaam5tpb28H4OzZs0QikT576nm/519i8XgcY0z6X3peys3N/VQ9FBYW8q9//Sv92Z7v8MqcOXOY\nNm0aAPfddx8nTpzwVT9vvfUWv/rVr9i+fTv5+fm+Hp//34ufx6ahoYEzZ84AMG3aNJLJJKNHj/bt\n2PTVz2233ebL8Tlw4ACvv/46S5Ys4aWXXuKXv/ylZ39vrAvpsrIyamtrATh27BiRSIS8vDyPq+rb\n3r172bFjBwDRaJSPPvqIxYsXp+t/7bXX+PznP8/MmTN59913uXDhApcuXeLIkSOUlpZSVlbG/v37\nAXjzzTe5++67Peult7lz536qHrKyspg6dSqHDx++7Du88uijj3L69Gmg67rUrbfe6pt+Ll68yFNP\nPcXWrVvTd9j6dXz66sXPY3P48GGef/55oOsyXWtrq2/H5kr9PP74474cn5///Oe88sor/OY3v+H+\n++9n5cqVno2NlbtgPfPMMxw+fBjHcVi/fj3FxcVel9SnlpYWVq9ezYULF4jH46xatYpp06ZRWVlJ\nR0cHN998M5s2bSIrK4v9+/ezY8cOHMdh6dKlfP3rXyeZTLJu3Tree+89QqEQmzdv5jOf+cx17aGh\noYEnn3ySDz74gGAwyPjx43nmmWeoqqr6VD2cPHmSxx9/nFQqxcyZM/nJT37iWT9Lly5l27ZtjBo1\nitzcXDZt2sS4ceN80U9NTQ3PPfccU6ZMSb+3efNm1q1b57vx6auXxYsX88ILL/hybNrb21m7di1n\nzpyhvb2dVatWMX369E/99z+T+snNzeXpp5/25fj0eO6555gwYQKf+9znPBkbK0NaRETEBtad7hYR\nEbGFQlpERCRDKaRFREQylEJaREQkQymkRUREMpRCWkREJEMppEVERDKUQlpERCRD/R/2fDYnNdM8\nIgAAAABJRU5ErkJggg==\n",
            "text/plain": [
              "<Figure size 576x396 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "6P_0xHTCrWs3",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "nb_test = 1000\n",
        "correctsG_test =[]\n",
        "labelsG_test = []\n",
        "for k in range(nb_test):\n",
        "    x,l = generator.generate_input(len_r=seq_max_len,true_parent=True)\n",
        "    y = RNNG(x)\n",
        "    _,preds = torch.max(y.data,1)\n",
        "    correctsG_test.append(preds.item() == l.data.item())\n",
        "    labelsG_test.append(l.data)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "MtGJ7t62rWs5",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "ebc6f9cb-559b-4a34-9e6d-9fdf523d60f3"
      },
      "cell_type": "code",
      "source": [
        "np.sum(correctsG_test)/nb_test"
      ],
      "execution_count": 42,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "1.0"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 42
        }
      ]
    },
    {
      "metadata": {
        "id": "YpFjWEjkrWs7",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "nb_test = 1000\n",
        "correctsG_test =[]\n",
        "labelsG_test = []\n",
        "for k in range(nb_test):\n",
        "    x,l = generator.generate_input(len_r=seq_max_len, hard_false = True)\n",
        "    y = RNNG(x)\n",
        "    _,preds = torch.max(y.data,1)\n",
        "    correctsG_test.append(preds.item() == l.data.item())\n",
        "    labelsG_test.append(l.data)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "SSFHc7okrWs-",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "a8f40ab6-ebcd-4d65-da16-e2d0339e735a"
      },
      "cell_type": "code",
      "source": [
        "np.sum(correctsG_test)/nb_test"
      ],
      "execution_count": 44,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.878"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 44
        }
      ]
    },
    {
      "metadata": {
        "id": "Ybzz8j9prWs_",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "nb_test = 1000\n",
        "correctshG_test =[]\n",
        "labelshG_test = []\n",
        "for k in range(nb_test):\n",
        "    x,l = generator.generate_input_hard()\n",
        "    y = RNNG(x)\n",
        "    _,preds = torch.max(y.data,1)\n",
        "    correctshG_test.append(preds.item() == l.data.item())\n",
        "    labelshG_test.append(l.data)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "aZseJiEHrWtB",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "587082d2-a86e-415a-c18f-d1fd91079872"
      },
      "cell_type": "code",
      "source": [
        "np.sum(correctshG_test)/nb_test"
      ],
      "execution_count": 46,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.582"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 46
        }
      ]
    },
    {
      "metadata": {
        "id": "FQd3ZTE4rWtH",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# LSTM"
      ]
    },
    {
      "metadata": {
        "id": "x8gS-hH9rWtI",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "class LSTMNet(nn.Module):\n",
        "    def __init__(self, dim_input=10, dim_recurrent=50, num_layers=4, dim_output=2):\n",
        "        super(LSTMNet, self).__init__()\n",
        "        self.lstm = nn.LSTM(input_size = dim_input, \n",
        "                           hidden_size = dim_recurrent,\n",
        "                           num_layers = num_layers)\n",
        "        self.fc_o2y = nn.Linear(dim_recurrent,dim_output)\n",
        "        \n",
        "    def forward(self, x):\n",
        "        x = x.unsqueeze(1)\n",
        "        output, _ = self.lstm(x)\n",
        "        output = output.squeeze(1)\n",
        "        output = output.narrow(0, output.size(0)-1,1)\n",
        "        return self.fc_o2y(F.relu(output))\n",
        "    \n",
        "lstm = gpu(LSTMNet(dim_input = nb_symbol))"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "89VPrGqFrWtL",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "x, l = generator.generate_input()"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "QxZq8PfWrWtN",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "bda3737a-ea10-4db2-a084-3f9c6f92ec90"
      },
      "cell_type": "code",
      "source": [
        "lstm(x)"
      ],
      "execution_count": 49,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "tensor([[ 0.0895, -0.0550]], device='cuda:0', grad_fn=<AddmmBackward>)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 49
        }
      ]
    },
    {
      "metadata": {
        "id": "Aa4mjh2YrWtP",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "88e46e74-7b4f-46d3-c6d6-4f2610157322"
      },
      "cell_type": "code",
      "source": [
        "optimizerL = torch.optim.Adam(lstm.parameters(),lr=1e-3)\n",
        "loss_tL = []\n",
        "correctsL =[]\n",
        "labelsL = []\n",
        "start = time.time()\n",
        "for k in range(nb_train):\n",
        "    x,l = generator.generate_input(hard_false = False)\n",
        "    y = lstm(x)\n",
        "    loss = cross_entropy(y,l)\n",
        "    _,preds = torch.max(y.data,1)\n",
        "    correctsL.append(preds.item() == l.data.item())\n",
        "    optimizerL.zero_grad()\n",
        "    loss.backward()\n",
        "    optimizerL.step()\n",
        "    loss_tL.append(loss)\n",
        "    labelsL.append(l.item())\n",
        "print(time.time() - start)"
      ],
      "execution_count": 50,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "389.74367904663086\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "p8-6GEfIrWtS",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 364
        },
        "outputId": "d3b4bd86-d6e9-410b-b2e9-c395e0828081"
      },
      "cell_type": "code",
      "source": [
        "plt.plot(running_mean(loss_tL,int(nb_train/50)))\n",
        "plt.plot(running_mean(loss_tG,int(nb_train/50)))\n",
        "plt.plot(running_mean(loss_t,int(nb_train/50)))"
      ],
      "execution_count": 51,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f747041e9e8>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 51
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nLK3M/wGMXI7vHL2ShgAAAABJRU5ErkJggg==\n",
            "text/plain": [
              "<Figure size 576x396 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "f-oaHPcTrWtU",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 364
        },
        "outputId": "b0923f0b-5491-4ea7-80ce-60d24730104a"
      },
      "cell_type": "code",
      "source": [
        "plt.plot(running_mean(correctsL,int(nb_train/50)))\n",
        "plt.plot(running_mean(correctsG,int(nb_train/50)))\n",
        "plt.plot(running_mean(corrects,int(nb_train/50)))"
      ],
      "execution_count": 52,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f74685112e8>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 52
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\neTwerVmzRtu3b1dxcbEWLFigO++8U1//+teVm5urG2+88ZJnxQAAIFlG94xramou+Dx16tTE9vLl\ny7V8+fLhrQoAgE8Qj8XjzwAA2IrpMAEAsBlhDACAzQhjAABsRhgDAGAzwhgAAJsRxgAA2Czruamd\n5FLrLDvJnj179MgjjyRmJ5syZYoeeOAB/ehHP1I0GlUwGNQzzzyjQCCgHTt26De/+Y1ycnK0ePFi\n3X///QqHw6qtrdXJkyfl9Xq1fv16TZgwwZZeDh06pJUrV+qb3/ymli5dqlOnTl1xH++//76efPJJ\nSdINN9ygn/zkJ7b0Ultbq4MHD2rUqFGSpBUrVmju3LlG9CJJTz/9tN566y1FIhF95zvf0c0332zs\nsUnVz+uvv27k8ent7VVtba1aW1vV39+vlStXaurUqcYem1T97Nq1y8hjc76+vj59+ctf1sqVKzV7\n9uyRPz6Wofbs2WM9+OCDlmVZ1uHDh63FixfbXNHF/f3vf7cefvjhC76rra21/vznP1uWZVnPPvus\ntXXrVqu7u9tauHCh1dHRYfX29lr33HOP1dbWZm3fvt168sknLcuyrDfffNN65JFHRrwHy7Ks7u5u\na+nSpdbq1autF198cdj6WLp0qdXY2GhZlmU9+uij1u7du23p5bHHHrNef/31pP2c3otlWVZDQ4P1\nwAMPWJZlWWfPnrU+97nPGXtsLtaPqcfnT3/6k7Vp0ybLsizr+PHj1sKFC40+Nqn6MfXYnO9nP/uZ\ntWjRIuvVV1+15fgYe5na9HWW9+zZo89//vOSpLvuuksNDQ1qbGzUzTffrOLiYuXl5amqqkr79+9X\nQ0ODFixYIEm6/fbbtX//fltqDgQC2rx5s0Kh0LD1MTAwoBMnTiSuagz9Djt6ScWEXiTptttu0y9+\n8QtJUklJiXp7e409NhfrJxqNJu1nQj933323vv3tb0uSTp06pYqKCqOPTap+UjGlH0lqamrS4cOH\nNXfuXEn2/H/N2DDOZJ1lJzl8+LC++93vasmSJfrb3/6m3t5eBQIBSdLo0aPV3NyslpYWlZeXJ35m\nqKfzv8/JyZHH40kszjGSfD6f8vLyLvjuSvtoaWlRSUlJYt+h32FHL5L00ksvadmyZfr+97+vs2fP\nGtGLJHm9XhUUFEiStm3bpjvvvNPYY3Oxfrxer7HHR5Kqq6tVU1Ojuro6o49Nqn4kc//uSNJTTz2l\n2traxGc7jo/R94zPZzl4Vs9JkyZp1apV+tKXvqRjx45p2bJlF/wr/2K1Z/u93YajDzt7+8pXvqJR\no0Zp2rRp2rRpk375y19q5syZF+zj9F7++te/atu2bXrhhRe0cOHCtLWY1M+BAweMPj6//e1v9d57\n7+mHP/zhBX+2qcfm/H7q6uqMPTZ/+MMfdOutt170OZyROj7GnhmnW2fZSSoqKnT33XfL4/Fo4sSJ\nGjNmjNrb29XX1ydJOn36tEKhUMqehr4f+ldVOByWZVmJf7XZraCg4Ir6CAaDOnfuXGLfod9hh9mz\nZ2vatGmSpHnz5unQoUNG9fLmm2/q17/+tTZv3qzi4mLjj83H+zH1+Bw4cECnTp2SJE2bNk3RaFSF\nhYXGHptU/UyZMsXIYyNJu3fv1muvvabFixfrlVde0a9+9Stb/u4YG8aXWmfZaXbs2KEtW7ZIkpqb\nm9Xa2qpFixYl6v/LX/6iO+64Q7fccoveffdddXR0qLu7W/v379esWbM0Z84c7dy5U5L0xhtv6DOf\n+YxtvXzc7bfffkV9+P1+XXfdddq3b98Fv8MODz/8sI4dOyYpfs/o+uuvN6aXzs5OPf3003r++ecT\nT7SafGxS9WPq8dm3b59eeOEFSfHbaz09PUYfm1T9PPHEE0YeG0n6+c9/rldffVW/+93vdP/992vl\nypW2HB+jV23auHGj9u3bl1hn+fylHZ2kq6tLNTU16ujoUDgc1qpVqzRt2jQ99thj6u/v17hx47R+\n/Xr5/X7t3LlTW7Zskcfj0dKlS3XfffcpGo1q9erVOnLkiAKBgDZs2KBrrrlmxPs4cOCAnnrqKZ04\ncUI+n08VFRXauHGjamtrr6iPw4cP64knnlAsFtMtt9yiH//4x7b0snTpUm3atEn5+fkqKCjQ+vXr\nNXr0aMf3Ikn19fV67rnnNHny5MR3GzZs0OrVq407NhfrZ9GiRXrppZeMOz59fX16/PHHderUKfX1\n9WnVqlW66aabrvjvv13HJlU/BQUFeuaZZ4w7Nh/33HPPafz48frsZz874sfH6DAGAMANjL1MDQCA\nWxDGAADYjDAGAMBmhDEAADYjjAEAsBlhDACAzQhjAABsRhgDAGCz/w9q7tx3RGf0zwAAAABJRU5E\nrkJggg==\n",
            "text/plain": [
              "<Figure size 576x396 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "kyW25KNFrWtX",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "nb_test = 1000\n",
        "correctsL_test =[]\n",
        "labelsL_test = []\n",
        "for k in range(nb_test):\n",
        "    x,l = generator.generate_input(len_r=seq_max_len,true_parent=True)\n",
        "    y = lstm(x)\n",
        "    _,preds = torch.max(y.data,1)\n",
        "    correctsL_test.append(preds.item() == l.data.item())\n",
        "    labelsL_test.append(l.data)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "jyvSAen_rWtZ",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "5441c878-c6a9-4847-b014-f14ef28b3677"
      },
      "cell_type": "code",
      "source": [
        "np.sum(correctsL_test)/nb_test"
      ],
      "execution_count": 54,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "1.0"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 54
        }
      ]
    },
    {
      "metadata": {
        "id": "G8ujRM01rWtb",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "nb_test = 1000\n",
        "correctsL_test =[]\n",
        "labelsL_test = []\n",
        "for k in range(nb_test):\n",
        "    x,l = generator.generate_input(len_r=seq_max_len,true_parent=False,hard_false = True)\n",
        "    y = lstm(x)\n",
        "    _,preds = torch.max(y.data,1)\n",
        "    correctsL_test.append(preds.item() == l.data.item())\n",
        "    labelsL_test.append(l.data)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "J-eibKJarWtd",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "62f369ec-6286-4126-eb2f-2a2e7de4f353"
      },
      "cell_type": "code",
      "source": [
        "np.sum(correctsL_test)/nb_test"
      ],
      "execution_count": 56,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.999"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 56
        }
      ]
    },
    {
      "metadata": {
        "id": "KI_uFdpTrWtg",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "nb_test = 1000\n",
        "correctshL_test =[]\n",
        "labelshL_test = []\n",
        "for k in range(nb_test):\n",
        "    x,l = generator.generate_input_hard()\n",
        "    y = lstm(x)\n",
        "    _,preds = torch.max(y.data,1)\n",
        "    correctshL_test.append(preds.item() == l.data.item())\n",
        "    labelshL_test.append(l.data)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "y1RnxVjBrWti",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "7dad5832-9a89-49c6-ab4c-ffb34af16ecd"
      },
      "cell_type": "code",
      "source": [
        "np.sum(correctshL_test)/nb_test"
      ],
      "execution_count": 58,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.752"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 58
        }
      ]
    },
    {
      "metadata": {
        "id": "nWsEn63TrWtk",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# GRU\n",
        "\n",
        "Implement your RNN with a [GRU](https://pytorch.org/docs/stable/nn.html#gru)"
      ]
    },
    {
      "metadata": {
        "id": "SvpioaJ5rWtm",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        ""
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "4rURh4FMrWto",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# Explore!\n",
        "\n",
        "What are good negative examples?\n",
        "\n",
        "How to be sure that your network 'generalizes'?"
      ]
    },
    {
      "metadata": {
        "id": "SZj5ed7WrWtp",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        ""
      ],
      "execution_count": 0,
      "outputs": []
    }
  ]
}